Git İki Dalı Karşılaştır

Git Compare Two Branches



Hemen hemen tüm sürüm kontrol sistemlerinin dallanma seçenekleri vardır. Ancak Git, hızlı dallanma yetenekleriyle bilinir. Git dalları hafiftir. Bu nedenle, dallanma için performans cezaları asgari düzeydedir ve geliştirme ekipleri mümkün olduğunca dallanmaya ve birleşmeye teşvik edilir. Ancak birden fazla şubeyle çalışırken, farklılıkları karşılaştırabilmek ve karşılaştırabilmek önemlidir. Bu derste, çeşitli dalları ve taahhütleri nasıl karşılaştırabileceğimizi görmek için bir iş akışından geçeceğiz.Önce aşağıdaki durumu ayarlayalım:

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









C02 => C04 => C05 (geliştirme)



Aşağıdaki adımlar atıldı:





  • C00: hello_world.py eklendi (ana dal)
  • — Geliştirme şubesini oluşturdu
  • C01: İkinci merhaba (ana dal) eklemek için merhaba_world.py değiştirildi
  • C02: Hello_world.py, Geliştirme dalı eklemek için değiştirildi Merhaba diyor (geliştirme dalı)
  • C03: Benioku.txt eklendi (ana dal)
  • C04: Hello_world.py, Geliştirme dalı eklemek için yeniden Merhaba diyor (geliştirme dalı)
  • C05: info.txt eklendi (geliştirme dalı)
  • C06: İkinci satır (ana dal) eklemek için benioku.txt değiştirildi

Tüm taahhütlerden sonra, 'ana' şube aşağıdaki dosyalara sahiptir:

merhaba_world.py
beni oku.txt



Ve 'geliştirme' dalında aşağıdaki dosyalar bulunur:

merhaba_world.py
info.txt


İki şubenin başlarının karşılaştırılması

İki dalın başlarını karşılaştırmak için dalların adını kullanabilirsiniz:

$git farkusta..geliştirme

fark --gitile/merhaba_world.py b/merhaba_world.py
dizin e27f806..3899ed3100644
---ile/merhaba_world.py
+++ b/merhaba_world.py
@@-2,7+2,7 @@

def ana():
Yazdır('İlk Merhaba!')
- Yazdır('İkinci Merhaba!')
-
+ yazdır('Geliştirme şubesi Merhaba diyor')
+ yazdır('Geliştirme şubesi tekrar merhaba diyor')
Eğer__name__ =='__ana__':
ana()
fark --gitile/info.txt b/info.txt
yenidosyamod100644
dizin 0000000..0ab52fd
--- /dev/boş
+++ b/info.txt
@@-0,0+1 @@
+Yeni bilgiler
fark --gitile/beni oku.txt b/beni oku.txt
silindidosyamod100644
dizin e29c296..0000000
---ile/beni oku.txt
+++/dev/boş
@@-1,2+0,0 @@
-1Benioku.txt dosyasının ilk satırı
-2Benioku.txt dosyasının ikinci satırı

diff komutu, yinelemeli olarak değişikliklere bakıyor. Aşağıdaki farkları çalıştırdı:

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

Burada 'a', 'ana' dalı ve 'b' geliştirme dalını temsil eder. 'a' her zaman ilk parametreye ve 'b' ikinci parametreye atanır. /dev/null, şubenin dosyaya sahip olmadığı anlamına gelir.


Taahhütler arasında karşılaştırma

Örneğimizde, 'ana' dal aşağıdaki taahhütlere sahiptir:

$git durumu
Şube yöneticisinde
taahhüt edilecek bir şey yok, çalışma dizini temiz

$git günlüğü --Tek çizgi
caa0ddd C06: İkinci satır eklemek için benioku.txt değiştirildi(ana dal)
efaba94 C03: Benioku.txt eklendi(ana dal)
ee60eac C01: İkinci merhaba eklemek için merhaba_world.py değiştirildi(ana dal)
22b4bf9 C00: hello_world.py eklendi(ana dal)

Geliştirme şubesi aşağıdaki taahhütlere sahiptir:

$git durumu
Şube geliştirme hakkında
taahhüt edilecek bir şey yok, çalışma dizini temiz

$git günlüğü --Tek çizgi
df3a4ee C05: info.txt eklendi(geliştirme dalı)
0f0abb8 C04: Geliştirme şubesini eklemek için merhaba_world.py değiştirildi tekrar Merhaba diyor(geliştirme dalı)
3f611a0 C02: Geliştirme şubesi eklemek için merhaba_world.py değiştirildi Merhaba diyor(geliştirme dalı)
22b4bf9 C00: hello_world.py eklendi(ana dal)

C01 ve C02 taahhütleri için hello_world.py dosyasını karşılaştırmak istediğimizi varsayalım. Karşılaştırmak için karmaları kullanabilirsiniz:

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

fark --gitile/ee60eac:hello_world.py/3f611a0:hello_world.py
dizin e27f806..72a178d100644
---ile/ee60eac:hello_world.py
+++ b/3f611a0:hello_world.py
@@-2,7+2,7 @@

def ana():
Yazdır('İlk Merhaba!')
- Yazdır('İkinci Merhaba!')
+ yazdır('Geliştirme şubesi Merhaba diyor')

Eğer__name__ =='__ana__':
ana()

Aynı daldaki taahhütleri karşılaştırmak için de aynı prensibi kullanabilirsiniz.


Görsel Birleştirme Araçları

Metin tabanlı karşılaştırmalara bakmak zor olabilir. Git'i kurduysanız difftool gibi bir görsel birleştirme uygulamasıyla Farklı Birleştirme veya Kıyaslanamaz , farklılıkları daha iyi görebileceksiniz.

İlerideki çalışma:

Referanslar: