Git Compare Two Branch

Git Compare Two Branches



Gairebé tots els sistemes de control de versions tenen opcions de ramificació. Però Git és conegut per les seves capacitats de ramificació ràpides. Les branques Git són lleugeres. Per tant, les penalitzacions de rendiment per a la ramificació són mínimes i es recomana als equips de desenvolupament que es ramifiquin i es fusionin tant com sigui possible. Però quan treballeu amb diverses branques, és important poder comparar i contrastar les diferències. En aquest tutorial, passarem per un flux de treball per veure com podem comparar diverses oficines i compromisos. Primer configurem la situació següent:

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









C02 => C04 => C05 (desenvolupament)



Es van fer els passos següents:





  • C00: s'ha afegit hello_world.py (branca mestra)
  • - Creació de la branca de desenvolupament
  • C01: hello_world.py modificat per afegir un segon hello (branca mestra)
  • C02: hello_world.py modificat per afegir la branca de desenvolupament diu Hello (branca de desenvolupament)
  • C03: afegit readme.txt (branca mestra)
  • C04: hello_world.py modificat per afegir una branca de desenvolupament diu Hola de nou (branca de desenvolupament)
  • C05: S'ha afegit info.txt (branca de desenvolupament)
  • C06: readme.txt modificat per afegir una segona línia (branca mestra)

Després de tots els compromisos, la branca 'mestra' té els fitxers següents:

hello_world.py
readme.txt



I la branca 'desenvolupament' té els fitxers següents:

hello_world.py
info.txt


Comparant els caps de dues branques

Podeu utilitzar el nom de les branques per comparar els caps de dues branques:

$git diffmestre..desenvolupament

dif - anara/hello_world.py b/hello_world.py
índex e27f806..3899ed3100.644
---a/hello_world.py
+++ b/hello_world.py
@@-2,7+2,7 @@

def main():
imprimir('Primer Hola!')
- imprimir('Segon Hola!')
-
+ imprimir('La branca de desenvolupament diu Hola')
+ imprimir('La branca de desenvolupament diu Hola de nou')
si__nom__ =='__main__':
principal()
dif - anara/info.txt b/info.txt
noudossiermode100.644
índex 0000000..0ab52fd
--- /dev/nul
+++ b/info.txt
@@-0,0+1 @@
+ Nova informació
dif - anara/readme.txt b/readme.txt
suprimitdossiermode100.644
índex e29c296..0000000
---a/readme.txt
+++/dev/nul
@@-1,2+0,0 @@
-1Primera línia de readme.txt
-2Segona línia de readme.txt

L'ordre diff examina recursivament els canvis. Ha executat les diferències següents:

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

Aquí 'a' significa la branca 'master' i 'b' significa la branca de desenvolupament. La 'a' sempre s'assigna al primer paràmetre i 'b' al segon paràmetre. El fitxer / dev / null significa que aquesta sucursal no té el fitxer.


Comparació entre commits

En el nostre exemple, la branca 'mestra' té les següents confirmacions:

$estat git
Al mestre de sucursal
res a comprometre, directori de treball net

$registre de git --oneline
caa0ddd C06: readme.txt modificat per afegir una segona línia(branca mestra)
efaba94 C03: s'ha afegit readme.txt(branca mestra)
ee60eac C01: hello_world.py modificat per afegir un segon hello(branca mestra)
22b4bf9 C00: afegit hello_world.py(branca mestra)

La branca de desenvolupament té els compromisos següents:

$estat git
Sobre el desenvolupament de sucursals
res a comprometre, directori de treball net

$registre de git --oneline
df3a4ee C05: s'ha afegit info.txt(branca de desenvolupament)
0f0abb8 C04: hello_world.py modificat per afegir la branca de desenvolupament diu Hola de nou(branca de desenvolupament)
3f611a0 C02: hello_world.py modificat per afegir la branca de desenvolupament diu Hola(branca de desenvolupament)
22b4bf9 C00: afegit hello_world.py(branca mestra)

Suposem que volem comparar les hello_world.py per als compromisos C01 i C02. Podeu utilitzar els hash per comparar:

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

dif - anara/ee60eac: hello_world.py b/3f611a0: hello_world.py
índex e27f806..72a178d100.644
---a/ee60eac: hello_world.py
+++ b/3f611a0: hello_world.py
@@-2,7+2,7 @@

def main():
imprimir('Primer Hola!')
- imprimir('Segon Hola!')
+ imprimir('La branca de desenvolupament diu Hola')

si__nom__ =='__main__':
principal()

Podeu utilitzar el mateix principi per comparar també els compromisos dins de la mateixa branca.


Eines de combinació visual

Mirar les comparacions basades en text pot ser difícil. Si configureu el Git eina de difusió amb una aplicació de combinació visual com DiffMerge o bé Més enllà de comparar , podreu veure les diferències millor.

Estudis avancats:

Referències: