Git Porównaj dwie gałęzie

Git Compare Two Branches



Prawie wszystkie systemy kontroli wersji mają opcje rozgałęzień. Ale Git jest znany ze swoich możliwości szybkiego rozgałęziania. Gałęzie Git są lekkie. Tak więc kary za wydajność w przypadku rozgałęziania są minimalne, a zespoły programistyczne są zachęcane do rozgałęziania i łączenia w jak największym stopniu. Ale kiedy pracujesz z wieloma gałęziami, ważne jest, aby móc porównać i skontrastować różnice. W tym samouczku omówimy przepływ pracy, aby zobaczyć, jak możemy porównać różne gałęzie i zatwierdzenia. Najpierw skonfigurujmy następującą sytuację:

C00 => C01 => C03 => C06 (master)









C02 => C04 => C05 (rozwój)



Podjęto następujące kroki:





  • C00: Dodano hello_world.py (gałąź główna)
  • — Utworzono gałąź deweloperską
  • C01: Zmodyfikowano hello_world.py, aby dodać drugie hello (gałąź master)
  • C02: Zmodyfikowano hello_world.py, aby dodać gałąź deweloperską z napisem Hello (gałąź deweloperska)
  • C03: Dodano plik readme.txt (gałąź główna)
  • C04: Zmodyfikowano hello_world.py, aby dodać gałąź deweloperską ponownie mówiącą Hello (gałąź deweloperska)
  • C05: Dodano info.txt (gałąź deweloperska)
  • C06: Zmodyfikowano plik readme.txt, aby dodać drugą linię (gałąź główna)

Po wszystkich zatwierdzeniach gałąź ‘master’ zawiera następujące pliki:

hello_world.py
readme.txt



A gałąź ‘development’ ma następujące pliki:

hello_world.py
info.txt


Porównanie główek dwóch gałęzi

Możesz użyć nazwy oddziałów, aby porównać głowy dwóch oddziałów:

$git diffmistrz..rozwój

różnica --wybrać siędo/hello_world.py b/hello_world.py
indeks e27f806..3899ed3100644
---do/hello_world.py
+++ b/hello_world.py
@@-2,7+2,7 @@

definiuj główne():
wydrukować(„Najpierw cześć!”)
- drukuj(„Drugie cześć!”)
-
+ drukuj(„Branża programistyczna mówi Witam”)
+ drukuj(„Branża programistyczna ponownie wita się”)
Jeśli__nazwa__ =='__Główny__':
Główny()
różnica --wybrać siędo/info.txt b/info.txt
Nowypliktryb100644
indeks 0000000..0ab52fd
--- /dev/zero
+++ b/info.txt
@@-0,0+1 @@
+Nowe informacje
różnica --wybrać siędo/readme.txt b/readme.txt
usuniętypliktryb100644
indeks e29c296..0000000
---do/readme.txt
+++/dev/zero
@@-1,2+0,0 @@
-1Pierwsza linia pliku readme.txt
-2Druga linia pliku readme.txt

Polecenie diff rekurencyjnie patrzy na zmiany. Uruchomił następujące różnice:

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

Tutaj „a” oznacza gałąź „master”, a „b” oznacza gałąź deweloperską. „a” jest zawsze przypisane do pierwszego parametru, a „b” do drugiego parametru. /dev/null oznacza, że ​​gałąź nie ma pliku.


Porównywanie zatwierdzeń

W naszym przykładzie gałąź ‘master’ ma następujące zatwierdzenia:

$status git
Na mistrzu oddziału
nic do zatwierdzenia, katalog roboczy czysty

$git log --jedna linia
caa0ddd C06: Zmodyfikowano plik readme.txt, aby dodać drugą linię(oddział główny)
efaba94 C03: Dodano plik readme.txt(oddział główny)
ee60eac C01: Zmodyfikowano hello_world.py, aby dodać drugie hello(oddział główny)
22b4bf9 C00: Dodano hello_world.py(oddział główny)

Gałąź deweloperska ma następujące zatwierdzenia:

$status git
O rozwoju branży
nic do zatwierdzenia, katalog roboczy czysty

$git log --jedna linia
df3a4ee C05: Dodano info.txt(branża deweloperska)
0f0abb8 C04: Zmodyfikowano hello_world.py, aby dodać gałąź Development ponownie mówiącą Witam(branża deweloperska)
3f611a0 C02: Zmodyfikowano hello_world.py, aby dodać gałąź Development z napisem Hello(branża deweloperska)
22b4bf9 C00: Dodano hello_world.py(oddział główny)

Załóżmy, że chcemy porównać hello_world.py dla commitów C01 i C02. Możesz użyć skrótów do porównania:

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

różnica --wybrać siędo/ee60eac:hello_world.py b/3f611a0:hello_world.py
indeks e27f806..72a178d100644
---do/ee60eac:hello_world.py
+++ b/3f611a0:hello_world.py
@@-2,7+2,7 @@

definiuj główne():
wydrukować(„Najpierw cześć!”)
- drukuj(„Drugie cześć!”)
+ drukuj(„Branża programistyczna mówi Witam”)

Jeśli__nazwa__ =='__Główny__':
Główny()

Możesz użyć tej samej zasady do porównywania zatwierdzeń w tej samej gałęzi.


Narzędzia scalania wizualnego

Patrzenie na porównania tekstowe może być trudne. Jeśli skonfigurujesz Git narzędzie różnicowe z aplikacją scalania wizualnego, taką jak DifMerge lub Bez porównania , będziesz mógł lepiej dostrzec różnice.

Dalsze badanie:

Bibliografia: