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

Git Compare Two Branches



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

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









C02 => C04 => C05 (развитие)



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





  • C00: Добавен hello_world.py (главен клон)
  • - Създаден е клон за развитие
  • C01: Модифициран hello_world.py за добавяне на втори здравей (главен клон)
  • C02: Модифициран hello_world.py за добавяне на клон за развитие казва Здравейте (клон за развитие)
  • C03: Добавен е readme.txt (главен клон)
  • C04: Променен hello_world.py за добавяне на клона за развитие казва „Здравейте отново“ (клон за развитие)
  • C05: Добавен info.txt (клон за разработка)
  • C06: Променен readme.txt за добавяне на втори ред (главен клон)

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

hello_world.py
readme.txt



А клонът „развитие“ има следните файлове:

hello_world.py
info.txt


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

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

$git diffмайстор..развитие

разл --отивамда се/hello_world.py б/hello_world.py
индекс e27f806..3899ed3100644
---да се/hello_world.py
+++ б/hello_world.py
@@-2,7+2,7 @@

def main():
печат('Първо Здравейте!')
- печат('Второ Здравейте!')
-
+ печат(„Клонът за развитие казва„ Здравей “)
+ печат(„Клонът за развитие казва„ Здравей отново “)
ако__name__ =='__main__':
главен()
разл --отивамда се/info.txt b/info.txt
новфайлрежим100644
индекс 0000000..0ab52fd
--- /dev/нула
+++ б/info.txt
@@-0,0+1 @@
+Нова информация
разл --отивамда се/readme.txt б/readme.txt
изтритфайлрежим100644
индекс e29c296..0000000
---да се/readme.txt
+++/dev/нула
@@-1,2+0,0 @@
-1Първият ред на readme.txt
-2Втори ред на readme.txt

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

diff –git a/hello_world.py b/hello_world.py
diff –git a/info.txt b/info.txt
diff –git a/readme.txt b/readme.txt

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


Сравняване между ангажименти

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

$git статус
На капитана на клона
нищо за ангажиране, работната директория е чиста

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

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

$git статус
За развитието на клона
нищо за ангажиране, работната директория е чиста

$git log --една линия
df3a4ee C05: Добавен е info.txt(клон за развитие)
0f0abb8 C04: Променен hello_world.py за добавяне на клона за развитие казва Здравейте отново(клон за развитие)
3f611a0 C02: Променен hello_world.py за добавяне на клона за развитие казва Здравейте(клон за развитие)
22b4bf9 C00: Добавено hello_world.py(главен клон)

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

$git diffee60eac: hello_world.py 3f611a0: hello_world.py

разл --отивамда се/ee60eac: hello_world.py b/3f611a0: hello_world.py
индекс e27f806..72a178d100644
---да се/ee60eac: hello_world.py
+++ б/3f611a0: hello_world.py
@@-2,7+2,7 @@

def main():
печат('Първо Здравейте!')
- печат('Второ Здравейте!')
+ печат(„Клонът за развитие казва„ Здравей “)

ако__name__ =='__main__':
главен()

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


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

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

По -нататъшно проучване:

Препратки: