Git Sammenlign to grene

Git Compare Two Branches



Næsten alle versionskontrolsystemer har forgreningsmuligheder. Men Git er kendt for sine hurtige forgreningsmuligheder. Git -grene er lette. Så præstationsstraffen for forgrening er minimal, og udviklingsteam opfordres til at forgrene og fusionere så meget som muligt. Men når du arbejder med flere grene, er det vigtigt at kunne sammenligne og kontrastere forskellene. I denne vejledning gennemgår vi en arbejdsgang for at se, hvordan vi kan sammenligne forskellige grene og forpligtelser. Lad os først oprette følgende situation:

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









C02 => C04 => C05 (udvikling)



Følgende trin blev taget:





  • C00: Tilføjet hello_world.py (master branch)
  • - Oprettede udviklingsgrenen
  • C01: Ændret hello_world.py for at tilføje andet hej (master branch)
  • C02: Ændret hello_world.py for at tilføje udviklingsgren siger hej (udviklingsgren)
  • C03: Tilføjet readme.txt (hovedgren)
  • C04: Ændret hello_world.py for at tilføje Udviklingsgren siger Hej igen (udviklingsgren)
  • C05: Tilføjet info.txt (udviklingsgren)
  • C06: Ændret readme.txt for at tilføje anden linje (hovedgren)

Efter alle tilsagn har 'master' -grenen følgende filer:

hej_verden.py
readme.txt



Og 'udviklings' -grenen har følgende filer:

hej_verden.py
info.txt


Sammenligning af hovederne på to grene

Du kan bruge filialernes navn til at sammenligne hovederne på to grene:

$git diffmester..udvikling

diff --gåtil/hej_verden.py b/hej_verden.py
indeks e27f806..3899ed3100644
---til/hej_verden.py
+++ b/hej_verden.py
@@-2,7+2,7 @@

def main():
Print('Første Hej!')
- Print('Andet Hej!')
-
+ udskriv('Udviklingsgren siger hej')
+ udskriv('Udviklingsgren siger hej igen')
hvis__navn__ =='__main__':
vigtigste()
diff --gåtil/info.txt b/info.txt
nyfilmode100644
indeks 0000000..0ab52fd
--- /dev/nul
+++ b/info.txt
@@-0,0+1 @@
+Nye oplysninger
diff --gåtil/readme.txt b/readme.txt
slettetfilmode100644
indeks e29c296..0000000
---til/readme.txt
+++/dev/nul
@@-1,2+0,0 @@
-1Første linje med readme.txt
-2Anden linje i readme.txt

Diff -kommandoen ser rekursivt på ændringerne. Det har kørt følgende forskelle:

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

Her står 'a' for 'master' -grenen og' b 'står for udviklingsgrenen. 'A' tildeles altid den første parameter og 'b' til den anden parameter. /Dev /null betyder, at filialen ikke har filen.


Sammenligning mellem forpligtelser

I vores eksempel har 'master' -grenen følgende forpligtelser:

$git status
På filialmester
intet at begå, arbejdskatalog rent

$git log --online
caa0ddd C06: Ændret readme.txt for at tilføje anden linje(hovedgren)
efaba94 C03: Tilføjet readme.txt(hovedgren)
ee60eac C01: Ændret hello_world.py for at tilføje andet hej(hovedgren)
22b4bf9 C00: Tilføjet hello_world.py(hovedgren)

Udviklingsgrenen har følgende forpligtelser:

$git status
Om filialudvikling
intet at begå, arbejdskatalog rent

$git log --online
df3a4ee C05: Tilføjet info.txt(udviklingsgren)
0f0abb8 C04: Ændret hello_world.py for at tilføje Development branch siger Hej igen(udviklingsgren)
3f611a0 C02: Ændret hello_world.py for at tilføje Development branch siger Hej(udviklingsgren)
22b4bf9 C00: Tilføjet hello_world.py(hovedgren)

Antag, at vi vil sammenligne hello_world.py for C01 og C02 commits. Du kan bruge hash til at sammenligne:

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

diff --gåtil/ee60eac: hello_world.py b/3f611a0: hej_verden.py
indeks e27f806..72a178d100644
---til/ee60eac: hej_verden.py
+++ b/3f611a0: hej_verden.py
@@-2,7+2,7 @@

def main():
Print('Første Hej!')
- Print('Andet Hej!')
+ udskriv('Udviklingsgren siger hej')

hvis__navn__ =='__main__':
vigtigste()

Du kan også bruge det samme princip til at sammenligne forpligtelser inden for samme gren.


Visuelle fletteværktøjer

Det kan være svært at se på tekstbaserede sammenligninger. Hvis du konfigurerer Git difftool med en visuel flette applikation som DiffMerge eller BeyondCompare , vil du være i stand til at se forskelle bedre.

Yderligere studier:

Referencer: