Git Primerjaj dve veji

Git Compare Two Branches



Skoraj vsi sistemi za nadzor različic imajo možnosti razvejanja. Toda Git je znan po svojih zmogljivostih hitrega razvejanja. Git veje so lahke. Zato so kazni za uspešnost razvejanja minimalne, razvojne ekipe pa spodbujamo, da se čim bolj razvejajo in združijo. Ko pa delate z več vejami, je pomembno, da lahko primerjate in primerjate razlike. V tej vadnici bomo preučili potek dela in videli, kako lahko primerjamo različne veje in urejenosti. Najprej nastavimo naslednjo situacijo:

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









C02 => C04 => C05 (razvoj)



Izvedeni so bili naslednji koraki:





  • C00: Dodano hello_world.py (glavna veja)
  • - Ustvaril razvojno vejo
  • C01: Spremenjen hello_world.py za dodajanje drugega zdravila (glavna veja)
  • C02: Spremenjen hello_world.py za dodajanje razvojne veje Pozdravljeni (razvojna veja)
  • C03: Dodan readme.txt (glavna veja)
  • C04: Spremenjen hello_world.py za dodajanje razvojne veje pravi Pozdravljeni še enkrat (razvojna veja)
  • C05: Dodan info.txt (razvojna veja)
  • C06: Spremenjen readme.txt za dodajanje druge vrstice (glavna veja)

Po vseh predajah ima podružnica 'master' naslednje datoteke:

hello_world.py
readme.txt



Podružnica 'razvoj' ima naslednje datoteke:

hello_world.py
info.txt


Primerjava glav dveh vej

Za primerjavo glav dveh vej lahko uporabite ime vej:

$git diffmojster..razvoj

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

def main():
tiskanje('Najprej Pozdravljeni!')
- tiskanje('Drugi pozdrav!')
-
+ tisk('Razvojna veja pozdravlja')
+ tisk('Razvojna veja pravi' Pozdravljeni še enkrat ')
če__ime__ =='__main__':
glavni()
razl -pojdido/info.txt b/info.txt
novmapanačin100644
indeks 0000000..0ab52fd
--- /dev/nič
+++ b/info.txt
@@-0,0+1 @@
+Nove informacije
razl -pojdido/readme.txt b/readme.txt
izbrisanmapanačin100644
indeks e29c296..0000000
---do/readme.txt
+++/dev/nič
@@-1,2+0,0 @@
-1Prva vrstica readme.txt
-2Druga vrstica readme.txt

Ukaz diff rekurzivno pregleduje spremembe. Zagnala je naslednje 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

Tu 'a' pomeni 'master' vejo in 'b' pomeni razvojno vejo. 'A' je vedno dodeljeno prvemu parametru, 'b' pa drugemu parametru. /Dev /null pomeni, da veja nima datoteke.


Primerjava med zavezami

V našem primeru ima veja 'master' naslednje urejenosti:

$git status
Na gospodarju podružnice
nič za zavezo, delovni imenik čist

$git log --oneline
caa0ddd C06: Spremenjen readme.txt za dodajanje druge vrstice(glavna veja)
efaba94 C03: Dodan readme.txt(glavna veja)
ee60eac C01: Spremenjen hello_world.py za dodajanje drugega hello(glavna veja)
22b4bf9 C00: Dodano hello_world.py(glavna veja)

Razvojna veja ima naslednje zaveze:

$git status
O razvoju podružnic
nič za zavezo, delovni imenik čist

$git log --oneline
df3a4ee C05: Dodan info.txt(razvojna veja)
0f0abb8 C04: Spremenjen hello_world.py za dodajanje razvojne veje pozdravlja znova(razvojna veja)
3f611a0 C02: Spremenjen hello_world.py za dodajanje razvojne veje Pozdravljeni(razvojna veja)
22b4bf9 C00: Dodano hello_world.py(glavna veja)

Recimo, da želimo primerjati hello_world.py za zapise C01 in C02. Za primerjavo lahko uporabite razpršilce:

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

razl -pojdido/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():
tiskanje('Najprej Pozdravljeni!')
- tiskanje('Drugi pozdrav!')
+ tisk('Razvojna veja pozdravlja')

če__ime__ =='__main__':
glavni()

Z istim načelom lahko primerjate tudi odbore v isti veji.


Orodja za vizualno spajanje

Primerjanje besedilnih primerjav je lahko težavno. Če nastavite Git difftool z vizualno aplikacijo za združevanje, kot je DiffMerge ali BeyondCompare , boste bolje videli razlike.

Nadaljni študij:

Reference: