Karena saya sudah membuat gambar-gambar ini, saya pikir mungkin ada gunanya menggunakannya dalam jawaban lain, meskipun deskripsi perbedaan antara ..
(titik-titik) dan ...
(titik-titik-titik) pada dasarnya sama dengan jawaban manojlds .
Perintah git diff
biasanya¹ hanya menunjukkan kepada Anda perbedaan antara status pohon antara tepat dua titik dalam grafik komit. The ..
dan ...
notasi di git diff
memiliki arti sebagai berikut:
Dengan kata lain, git diff foo..bar
persis sama dengan git diff foo bar
; keduanya akan menunjukkan kepada Anda perbedaan antara ujung kedua cabang foo
dan bar
. Di sisi lain, git diff foo...bar
akan menunjukkan kepada Anda perbedaan antara "basis gabungan" dari dua cabang dan ujung bar
. "Basis penggabungan" biasanya merupakan komit terakhir yang sama di antara kedua cabang tersebut, jadi perintah ini akan menunjukkan kepada Anda perubahan yang bar
telah diperkenalkan pada pekerjaan Anda , sementara mengabaikan semua yang telah dilakukan pada foo
waktu yang bersamaan.
Itu semua yang perlu Anda ketahui tentang ..
dan ...
notasi di git diff
. Namun...
... sumber kebingungan yang umum di sini adalah hal itu ..
dan ...
berarti hal-hal yang agak berbeda ketika digunakan dalam perintah seperti git log
yang mengharapkan serangkaian commit sebagai satu atau lebih argumen. (Semua perintah ini pada akhirnya digunakan git rev-list
untuk mengurai daftar commit dari argumen mereka.)
Arti dari ..
dan ...
untuk git log
dapat ditampilkan secara grafis seperti di bawah ini:
Jadi, git rev-list foo..bar
menunjukkan kepada Anda segala sesuatu di cabang bar
yang tidak juga di cabang foo
. Di sisi lain, git rev-list foo...bar
menunjukkan semua komitmen yang ada di salah satu foo
atau bar
, tetapi tidak keduanya . Diagram ketiga hanya menunjukkan bahwa jika Anda membuat daftar dua cabang, Anda mendapatkan komit yang ada di salah satu atau keduanya.
Yah, bagaimanapun juga saya merasa sedikit membingungkan, dan saya pikir diagram graph commit membantu :)
¹ Saya hanya mengatakan "biasanya" karena ketika menyelesaikan konflik gabungan, misalnya, git diff
akan menunjukkan kepada Anda gabungan tiga arah.
..
dan...
dalamgit diff
dan artinya yang berbedagit log
.