Git

Git Сравнить две ветки

Git Сравнить две ветки

Почти все системы контроля версий имеют варианты ветвления. Но Git известен своими возможностями быстрого перехода. Ветви Git легкие. Таким образом, потери производительности за ветвление минимальны, и командам разработчиков рекомендуется как можно больше разветвлять и объединять. Но когда вы работаете с несколькими ветвями, важно иметь возможность сравнивать и противопоставлять различия. В этом руководстве мы рассмотрим рабочий процесс, чтобы увидеть, как мы можем сравнивать различные ветки и коммиты.Давайте сначала создадим следующую ситуацию:

C00 => C01 => C03 => C06 (главный)

      \

       C02 => C04 => C05 (разработка)

Были предприняты следующие шаги:

После всех коммитов в ветке master будут следующие файлы:

Привет мир.ру
Прочти меня.текст

А в ветке «разработка» есть следующие файлы:

Привет мир.ру
Информация.текст


Сравнение голов двух веток

Вы можете использовать названия веток для сравнения голов двух ветвей:

$ git diff master… разработка
diff --git a / hello_world.py b / hello_world.ру
индекс e27f806… 3899ed3 100644
--- а / hello_world.ру
+++ б / hello_world.ру
@@ -2,7 +2,7 @@
def main ():
print ("Первый привет!")
- print ("Второй привет!")
-
+ print ("Ветвь разработки приветствует")
+ print ("Ветвь разработки снова приветствует")
если __name__ == "__main__":
основной()
diff --git a / info.txt b / info.текст
новый файловый режим 100644
индекс 0000000… 0ab52fd
--- / dev / null
+++ б / информация.текст
@@ -0,0 +1 @@
+Новая информация
diff --git a / readme.txt b / readme.текст
режим удаленного файла 100644
индекс e29c296… 0000000
--- a / readme.текст
+++ / dev / null
@@ -1,2 +0,0 @@
-1 Первая строка ридми.текст
-2 Вторая строка ридми.текст

Команда diff рекурсивно просматривает изменения. Он выполнил следующие различия:

diff -git a / hello_world.py b / hello_world.ру
diff -git a / info.txt b / info.текст
diff -git a / readme.txt b / readme.текст

Здесь «a» обозначает ветвь «master», а «b» обозначает ветвь разработки. Буква «a» всегда присваивается первому параметру, а буква «b» - второму параметру.  / Dev / null означает, что в ветке нет файла.


Сравнение коммитов

В нашем примере ветка master имеет следующие коммиты:

$ git status
О мастере филиала
ничего не фиксировать, рабочий каталог чист
$ git log --oneline
caa0ddd C06: измененный файл readme.txt, чтобы добавить вторую строку (основная ветка)
efaba94 C03: Добавлен ридми.txt (основная ветка)
ee60eac C01: Изменено hello_world.py, чтобы добавить второе приветствие (главная ветка)
22b4bf9 C00: Добавлен hello_world.py (основная ветка)

В ветке разработки есть следующие коммиты:

$ git status
О развитии отрасли
ничего не фиксировать, рабочий каталог чист
$ git log --oneline
df3a4ee C05: Добавлена ​​информация.txt (ветка разработки)
0f0abb8 C04: Изменено hello_world.py, чтобы добавить ветку разработки, снова приветствует (ветка разработки)
3f611a0 C02: Изменено hello_world.py, чтобы добавить ветку разработки, говорит привет (ветка разработки)
22b4bf9 C00: Добавлен hello_world.py (основная ветка)

Предположим, мы хотим сравнить hello_world.py для коммитов C01 и C02. Вы можете использовать хеши для сравнения:

$ git diff ee60eac: hello_world.py 3f611a0: hello_world.ру
diff --git a / ee60eac: hello_world.py b / 3f611a0: hello_world.ру
индекс e27f806… 72a178d 100644
--- a / ee60eac: hello_world.ру
+++ b / 3f611a0: hello_world.ру
@@ -2,7 +2,7 @@
def main ():
print ("Первый привет!")
- print ("Второй привет!")
+ print ("Ветвь разработки приветствует")
если __name__ == "__main__":
основной()

Вы можете использовать тот же принцип для сравнения коммитов в одной и той же ветке.


Инструменты визуального слияния

Глядя на текстовые сравнения, может быть сложно. Если вы настроите Git difftool с приложением визуального слияния, например DiffMerge или BeyondCompare, вы сможете лучше видеть различия.

Дальнейшее изучение:

Рекомендации:

Shadow of the Tomb Raider для Linux Учебное пособие
Shadow of the Tomb Raider - двенадцатое дополнение к серии Tomb Raider - франшизе приключенческой игры, созданной Eidos Montreal. Игра была очень хоро...
Как увеличить FPS в Linux?
FPS означает Кадров в секунду. Задача FPS - измерить частоту кадров при воспроизведении видео или во время игры. Проще говоря, количество непрерывных ...
Лучшие игры Oculus App Lab
Если вы владелец гарнитуры Oculus, вы должны знать о загрузке неопубликованных приложений. Боковая загрузка - это процесс установки на гарнитуру содер...