Katakan Anda dan teman Anda sama-sama memeriksa file, dan membuat beberapa perubahan padanya. Anda menghapus satu baris di awal, dan teman Anda menambahkan satu baris di akhir. Lalu ia melakukan file-nya, dan Anda perlu menggabungkan perubahannya ke dalam salinan Anda.
Jika Anda melakukan penggabungan dua arah (dengan kata lain, diff), alat ini dapat membandingkan dua file, dan melihat bahwa baris pertama dan terakhir berbeda. Tetapi bagaimana ia tahu apa yang harus dilakukan dengan perbedaan? Haruskah versi yang digabungkan menyertakan baris pertama? Haruskah ini termasuk baris terakhir?
Dengan penggabungan tiga arah, ia dapat membandingkan dua file, tetapi juga dapat membandingkan masing-masing dengan salinan asli (sebelum salah satu dari Anda mengubahnya). Sehingga dapat melihat bahwa Anda menghapus baris pertama, dan bahwa teman Anda menambahkan baris terakhir. Dan itu dapat menggunakan informasi itu untuk menghasilkan versi gabungan.
Slide ini dari presentasi terpaksa menarik:
sumber
Saya menulis posting yang sangat rinci tentang hal itu . Pada dasarnya Anda tidak dapat melacak penghapusan / penambahan dengan dua arah, sangat, sangat tidak produktif.
sumber
Penggabungan tiga arah di mana dua perubahan pada satu file basis digabungkan saat diterapkan, sebagai lawan menerapkan satu, lalu menggabungkan hasilnya dengan yang lain.
Misalnya, memiliki dua perubahan di mana baris ditambahkan di tempat yang sama dapat diinterpretasikan sebagai dua tambahan, bukan perubahan satu baris.
Sebagai contoh
file a telah dimodifikasi oleh dua orang, satu menambahkan moose, satu menambahkan mouse.
Sekarang, jika kita menggabungkan perubahan saat kita menerapkannya, kita akan mendapatkan (gabungan 3 arah)
Tetapi jika kita menerapkan b, maka lihat perubahan dari b ke c itu akan terlihat seperti kita hanya mengubah 'u' menjadi 'o' (penggabungan 2 arah)
sumber