Git Sammenlign to grener

Git Compare Two Branches



Nesten alle versjonskontrollsystemer har forgreningsalternativer. Men Git er kjent for sine raske forgreningsmuligheter. Git -grener er lette. Så ytelsesstraffene for forgrening er minimale, og utviklingsteam oppfordres til å forgrene og slå seg sammen så mye som mulig. Men når du jobber med flere grener, er det viktig å kunne sammenligne og kontrastere forskjellene. I denne opplæringen vil vi gå gjennom en arbeidsflyt for å se hvordan vi kan sammenligne forskjellige grener og forpliktelser. La oss først sette opp følgende situasjon:

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









C02 => C04 => C05 (utvikling)



Følgende trinn ble tatt:





  • C00: Lagt til hello_world.py (hovedgren)
  • - Opprettet utviklingsgrenen
  • C01: Endret hello_world.py for å legge til andre hei (hovedgren)
  • C02: Endret hello_world.py for å legge til Utviklingsgren sier Hei (utviklingsgren)
  • C03: Lagt til readme.txt (hovedgren)
  • C04: Endret hello_world.py for å legge til Utviklingsgren sier Hei igjen (utviklingsgren)
  • C05: Lagt til info.txt (utviklingsgren)
  • C06: Endret readme.txt for å legge til andre linje (hovedgren)

Etter alle forpliktelsene har ‘master’ -grenen følgende filer:

hello_world.py
readme.txt



Og grenen 'utvikling' har følgende filer:

hello_world.py
info.txt


Sammenligning av hodene på to grener

Du kan bruke navnet på grenene for å sammenligne hodene til to grener:

$git diffmester..utvikling

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

def main():
skrive ut('Første hei!')
- skrive ut('Andre Hallo!')
-
+ skrive ut('Utviklingsgren sier hei')
+ skrive ut('Utviklingsgren sier Hei igjen')
hvis__navn__ =='__hoved__':
hoved-()
forskj --gåtil/info.txt b/info.txt
nyfilmodus100644
indeks 0000000..0ab52fd
--- /dev/null
+++ b/info.txt
@@-0,0+1 @@
+Ny informasjon
forskj --gåtil/readme.txt b/readme.txt
slettetfilmodus100644
indeks e29c296..0000000
---til/readme.txt
+++/dev/null
@@-1,2+0,0 @@
-1Første linje med readme.txt
-2Andre linje med readme.txt

Diff -kommandoen ser rekursivt på endringene. Den har kjørt følgende forskjeller:

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 utviklingsgrenen. 'A' er alltid tilordnet den første parameteren og 'b' til den andre parameteren. /Dev /null betyr at grenen ikke har filen.


Sammenligning mellom forpliktelser

I vårt eksempel har 'master' -grenen følgende forpliktelser:

$git -status
På filialmester
ingenting å forplikte seg, arbeidsmappen er ren

$git -logg --en linje
caa0ddd C06: Endret readme.txt for å legge til andre linje(hovedgren)
efaba94 C03: Lagt til readme.txt(hovedgren)
ee60eac C01: Endret hello_world.py for å legge til andre hei(hovedgren)
22b4bf9 C00: Lagt til hello_world.py(hovedgren)

Utviklingsgrenen har følgende forpliktelser:

$git -status
Om filialutvikling
ingenting å forplikte seg, arbeidsmappen er ren

$git -logg --en linje
df3a4ee C05: Lagt til info.txt(utviklingsgren)
0f0abb8 C04: Endret hello_world.py for å legge til Utviklingsgren sier Hei igjen(utviklingsgren)
3f611a0 C02: Endret hello_world.py for å legge til Development branch sier Hei(utviklingsgren)
22b4bf9 C00: Lagt til hello_world.py(hovedgren)

Anta at vi vil sammenligne hello_world.py for C01 og C02 commits. Du kan bruke hasjene til å sammenligne:

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

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

def main():
skrive ut('Første hei!')
- skrive ut('Andre Hallo!')
+ skrive ut('Utviklingsgren sier hei')

hvis__navn__ =='__hoved__':
hoved-()

Du kan også bruke det samme prinsippet til å sammenligne forpliktelser innenfor samme gren.


Visuelle fletteverktøy

Å se på tekstbaserte sammenligninger kan være vanskelig. Hvis du konfigurerer Git difftool med en visuell sammenslåingsapplikasjon som DiffMerge eller BeyondCompare , vil du kunne se forskjeller bedre.

Videre studier:

Referanser: