Git Usporedi dvije grane

Git Compare Two Branches



Gotovo svi sustavi kontrole verzija imaju mogućnosti grananja. No, Git je poznat po svojim mogućnostima brzog grananja. Git grane su lagane. Stoga su kazne za izvedbu grananja minimalne, a razvojni se timovi potiču na grananje i spajanje što je više moguće. No, kada radite s više grana, važno je usporediti i uporediti razlike. U ovom ćemo vodiču proći kroz tijek rada kako bismo vidjeli kako možemo usporediti različite grane i urezivanja. Prvo postavimo sljedeću situaciju:

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









C02 => C04 => C05 (razvoj)



Poduzeti su sljedeći koraci:





  • C00: Dodano hello_world.py (glavna grana)
  • - Stvorio razvojnu granu
  • C01: Izmijenjen hello_world.py za dodavanje drugog pozdrava (glavna grana)
  • C02: Izmijenjeno hello_world.py za dodavanje razvojne grane kaže Hello (razvojna grana)
  • C03: Dodano readme.txt (glavna grana)
  • C04: Izmijenjeno hello_world.py za dodavanje razvojne grane kaže 'Pozdrav opet' (razvojna grana)
  • C05: Dodan info.txt (razvojna grana)
  • C06: Izmijenjen readme.txt za dodavanje drugog retka (glavna grana)

Nakon svih urezivanja, 'glavna' grana ima sljedeće datoteke:

hello_world.py
readme.txt



A grana 'razvoj' ima sljedeće datoteke:

hello_world.py
info.txt


Usporedba glavica dviju grana

Možete upotrijebiti naziv grana za usporedbu glava dviju grana:

$git razlikamajstor..razvoj

razl --ićido/hello_world.py b/hello_world.py
indeks e27f806..3899ed3100644
---do/hello_world.py
+++ b/hello_world.py
@@-2,7+2,7 @@

def main():
ispisati('Prvo Hello!')
- ispis('Drugi pozdrav!')
-
+ ispis('Podružnica za razvoj kaže' Zdravo ')
+ ispis('Razvojna podružnica kaže' Zdravo opet ')
ako__naziv__ =='__glavni__':
glavni()
razl --ićido/info.txt b/info.txt
novidatotekanačinu rada100644
indeks 0000000..0ab52fd
--- /dev/null
+++ b/info.txt
@@-0,0+1 @@
+Nove informacije
razl --ićido/readme.txt b/readme.txt
izbrisandatotekanačinu rada100644
indeks e29c296..0000000
---do/readme.txt
+++/dev/null
@@-1,2+0,0 @@
-1Prvi redak readme.txt
-2Drugi redak readme.txt

Naredba diff rekurzivno gleda promjene. Pokrenuo je sljedeće razlike:

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

Ovdje 'a' označava 'master' granu, a 'b' označava razvojnu granu. 'A' je uvijek dodijeljeno prvom parametru, a 'b' drugom parametru. /Dev /null znači da grana nema datoteku.


Usporedba među urezivanjima

U našem primjeru, 'master' grana ima sljedeće urezivanja:

$git status
Na podružnici
nema obveza, radni imenik čist

$git log --jedna linija
caa0ddd C06: Izmijenjen readme.txt za dodavanje drugog retka(glavna podružnica)
efaba94 C03: Dodano readme.txt(glavna podružnica)
ee60eac C01: Izmijenjen hello_world.py za dodavanje drugog pozdrava(glavna podružnica)
22b4bf9 C00: Dodano hello_world.py(glavna podružnica)

Razvojna grana ima sljedeće obveze:

$git status
O razvoju grana
nema obveza, radni imenik čist

$git log --jedna linija
df3a4ee C05: Dodan info.txt(razvojna grana)
0f0abb8 C04: Izmijenjena hello_world.py za dodavanje razvojne grane kaže Pozdrav opet(razvojna grana)
3f611a0 C02: Izmijenjena hello_world.py za dodavanje razvojne grane kaže Pozdrav(razvojna grana)
22b4bf9 C00: Dodano hello_world.py(glavna podružnica)

Pretpostavimo da želimo usporediti hello_world.py za urezivanja C01 i C02. Pomoću raspršivača možete usporediti:

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

razl --ićido/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 @@

def main():
ispisati('Prvo Hello!')
- ispis('Drugi pozdrav!')
+ ispis('Podružnica za razvoj kaže' Zdravo ')

ako__naziv__ =='__glavni__':
glavni()

Možete koristiti isti princip za usporedbu urezivanja unutar iste grane.


Alati za vizualno spajanje

Usporedbe na temelju teksta mogu biti teške. Ako postavite Git difftool s aplikacijom za vizualno spajanje poput DiffMerge ili BeyondCompare , moći ćete bolje vidjeti razlike.

Daljni studiji:

Reference: