Git

Git Сравнете два клона

Git Сравнете два клона

Почти всички системи за контрол на версиите имат опции за разклоняване. Но Git е известен със своите възможности за бързо разклоняване. Git клоните са леки. Така санкциите за производителност при разклоняване са минимални и екипите за разработки се насърчават да се разклоняват и обединяват колкото е възможно повече. Но когато работите с множество клонове, е важно да можете да сравнявате и контрастирате разликите. В този урок ще преминем през работен процес, за да видим как можем да сравняваме различни клонове и фиксирания.Нека първо настроим следната ситуация:

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

      \

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

Бяха предприети следните стъпки:

След всички фиксирания клонът „master“ има следните файлове:

Здравей свят.py
Прочети ме.текст

И клонът "развитие" има следните файлове:

Здравей свят.py
информация.текст


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

Можете да използвате името на клоните, за да сравните главите на два клона:

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

Командата diff рекурсивно разглежда промените. Той е изпълнил следните разлики:

diff -git a / hello_world.py b / hello_world.py
diff -git a / info.txt b / информация.текст
diff -git a / readme.txt b / readme.текст

Тук „a“ означава „master“ клон, а „b“ означава клон за развитие. 'A' винаги се присвоява на първия параметър, а 'b' на втория параметър.  / Dev / null означава, че клонът няма файла.


Сравнение между комитите

В нашия пример клонът „master“ има следните фиксирания:

$ git статус
На клона майстор
няма нищо за ангажиране, работната директория е чиста
$ git log --oneline
caa0ddd C06: Модифицирано четене.txt за добавяне на втори ред (главен клон)
efaba94 C03: Добавена е readme.txt (главен клон)
ee60eac C01: Модифициран hello_world.py за добавяне на втори здравей (главен клон)
22b4bf9 C00: Добавен hello_world.py (главен клон)

Клонът за развитие има следните ангажименти:

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

Да предположим, че искаме да сравним hello_world.py за C01 и C02 ангажименти. Можете да използвате хешовете за сравнение:

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

Можете да използвате същия принцип и за сравняване на ангажименти в същия клон.


Инструменти за визуално обединяване

Разглеждането на текстови сравнения може да бъде трудно. Ако настроите Git difftool с приложение за визуално обединяване като DiffMerge или BeyondCompare, ще можете да видите разликите по-добре.

Допълнително проучване:

Препратки:

Инсталирайте най-новата стратегия за игра OpenRA на Ubuntu Linux
OpenRA е Libre / Free Real Time стратегия за игра, която пресъздава ранните игри на Westwood като класическата Command & Conquer: Red Alert. Разпредел...
Инсталирайте най-новия Dolphin Emulator за Gamecube & Wii на Linux
Dolphin Emulator ви позволява да играете избраните от вас игри Gamecube & Wii на Linux Personal Computers (PC). Като безплатно достъпен и емулатор на...
Как да използвам GameConqueror Cheat Engine в Linux
Статията обхваща ръководство за използването на GameConqueror cheat engine в Linux. Много потребители, които играят игри под Windows, често използват ...