Bu görüntüleri zaten oluşturduğumdan, onları başka bir cevapta kullanmaya değer olabileceğini düşündüm, ancak ..
(nokta-nokta) ve ...
(nokta-nokta-nokta) arasındaki farkın tanımı esasen manojlds cevabı ile aynıdır .
Komut git diff
tipik olarak yalnızca, komut grafiğinde tam olarak iki nokta arasındaki ağacın durumları arasındaki farkı gösterir. İçindeki ..
ve ...
gösterimlerinin git diff
anlamları:
Başka bir deyişle, git diff foo..bar
tam olarak aynıdır git diff foo bar
; Her iki sana iki dal uçlarına arasındaki farkı gösterecektir foo
ve bar
. Öte yandan, git diff foo...bar
size iki şube "birleştirme tabanı" ve ucu arasındaki farkı gösterecektir bar
. "Birleştirme tabanı" genellikle bu iki dal arasında ortak olan son işlemdir, bu nedenle bu komut size ortalama bar
olarak yapılan her şeyi yok sayarken çalışmanızın getirdiği değişiklikleri gösterecektir foo
.
Hakkında bilmeniz gereken tek şey ..
ve ...
gösterimler git diff
. Ancak...
... burada yaygın bir karışıklık kaynağı, bir komutta kullanıldığında, bir veya daha fazla argüman olarak bir dizi taahhüt beklediği anlamına gelen ..
ve ...
oldukça farklı şeyler anlamına gelir git log
. (Bu komutların tümü git rev-list
, argümanlarından bir taahhüt listesini ayrıştırmak için kullanılır .)
Anlamı ..
ve ...
için git log
aşağıda grafik olarak gösterilebilir:
Yani, git rev-list foo..bar
size dalda bar
da olmayan her şeyi gösterir foo
. Öte yandan, git rev-list foo...bar
gösteriler size ya tüm kaydedilmesini foo
veya bar
ancak ikisini birden . Üçüncü diyagram sadece iki dalı listelerseniz, bunlardan birinde veya her ikisinde bulunan taahhütleri aldığınızı gösterir.
Her neyse, biraz kafa karıştırıcı buluyorum ve bence taahhüt grafiği diyagramları yardımcı oluyor :)
Only Yalnızca "tipik" diyorum çünkü birleştirme çakışmalarını çözerken git diff
size üç yönlü birleşme gösterecektir.
..
ve...
içindeki anlamıgit diff
ve farklı anlamlarını gösterirgit log
.