Git Compare Two Rams

Git Compare Two Branches



Aproape toate sistemele de control al versiunilor au opțiuni de ramificare. Dar Git este cunoscut pentru capacitățile sale de ramificare rapidă. Ramurile Git sunt ușoare. Deci, penalizările de performanță pentru ramificare sunt minime, iar echipele de dezvoltare sunt încurajate să se ramifice și să fuzioneze cât mai mult posibil. Dar când lucrați cu mai multe ramuri, este important să puteți compara și contrasta diferențele. În acest tutorial, vom trece printr-un flux de lucru pentru a vedea cum putem compara diferite ramuri și angajamente. Să configurăm mai întâi următoarea situație:

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









C02 => C04 => C05 (dezvoltare)



S-au făcut următorii pași:





  • C00: Adăugat hello_world.py (sucursală principală)
  • - A creat ramura de dezvoltare
  • C01: Modificat hello_world.py pentru a adăuga al doilea salut (ramură principală)
  • C02: hello_world.py modificat pentru a adăuga ramură de dezvoltare spune Hello (ramură de dezvoltare)
  • C03: Adăugat readme.txt (ramură principală)
  • C04: hello_world.py modificat pentru a adăuga ramură de dezvoltare spune Hello din nou (ramură de dezvoltare)
  • C05: Adăugat info.txt (ramură de dezvoltare)
  • C06: Readme.txt modificat pentru a adăuga a doua linie (ramură master)

După toate comiterile, ramura „master” are următoarele fișiere:

hello_world.py
readme.txt



Iar ramura „dezvoltare” are următoarele fișiere:

hello_world.py
info.txt


Comparând capetele a două ramuri

Puteți utiliza numele ramurilor pentru a compara capetele a două ramuri:

$git diffstăpân..dezvoltare

dif --mergela/hello_world.py b/hello_world.py
index e27f806..3899ed3100644
---la/hello_world.py
+++ b/hello_world.py
@@-2,7+2,7 @@

def main():
imprimare(„În primul rând Bună ziua!”)
- imprimare('Al doilea Bună ziua!')
-
+ print(„Sucursala de dezvoltare spune Hello”)
+ print(„Sucursala de dezvoltare spune din nou Bună ziua”)
dacă__name__ =='__principal__':
principal()
dif --mergela/info.txt b/info.txt
noufişiermodul100644
index 0000000..0ab52fd
--- /dev/nul
+++ b/info.txt
@@-0,0+1 @@
+ Informații noi
dif --mergela/readme.txt b/readme.txt
ștersfişiermodul100644
index e29c296..0000000
---la/readme.txt
+++/dev/nul
@@-1,2+0,0 @@
-1Prima linie readme.txt
-2Al doilea rând de readme.txt

Comanda diff analizează recursiv modificările. A rulat următoarele diferențe:

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

Aici „a” reprezintă ramura „master” și „b” reprezintă ramura de dezvoltare. „A” este întotdeauna atribuit primului parametru și „b” celui de-al doilea parametru. / Dev / null înseamnă că ramura nu are fișierul.


Compararea între comitere

În exemplul nostru, filiala „master” are următoarele confirmări:

$starea git
Pe maestrul de ramură
nimic de comis, directorul de lucru curat

$git log --o linie
caa0ddd C06: readme.txt modificat pentru a adăuga a doua linie(ramură principală)
efaba94 C03: A fost adăugat readme.txt(ramură principală)
ee60eac C01: Modificat hello_world.py pentru a adăuga al doilea salut(ramură principală)
22b4bf9 C00: Adăugat hello_world.py(ramură principală)

Sucursala de dezvoltare are următoarele angajamente:

$starea git
Despre dezvoltarea ramurilor
nimic de comis, directorul de lucru curat

$git log --o linie
df3a4ee C05: Adăugat info.txt(ramura de dezvoltare)
0f0abb8 C04: hello_world.py modificat pentru a adăuga ramura de dezvoltare spune din nou Bună ziua(ramura de dezvoltare)
3f611a0 C02: hello_world.py modificat pentru a adăuga ramura de dezvoltare spune Hello(ramura de dezvoltare)
22b4bf9 C00: Adăugat hello_world.py(ramură principală)

Să presupunem că vrem să comparăm hello_world.py pentru comitetele C01 și C02. Puteți utiliza hashurile pentru a compara:

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

dif --mergela/ee60eac: hello_world.py b/3f611a0: hello_world.py
index e27f806..72a178d100644
---la/ee60eac: hello_world.py
+++ b/3f611a0: hello_world.py
@@-2,7+2,7 @@

def main():
imprimare(„În primul rând Bună ziua!”)
- imprimare('Al doilea Bună ziua!')
+ print(„Sucursala de dezvoltare spune Hello”)

dacă__name__ =='__principal__':
principal()

Puteți utiliza același principiu pentru a compara și comitetele din aceeași ramură.


Instrumente de îmbinare vizuală

Privirea la comparații bazate pe text poate fi dificilă. Dacă configurați Git diftool cu o aplicație de îmbinare vizuală de genul DiffMerge sau DincoloComparați , vei putea vedea diferențele mai bine.

Continuarea studiilor:

Referințe: