Untuk menindaklanjuti jawaban Charles Bailey, inilah setup git saya yang menggunakan p4merge (alat penggabungan 3way cross-platform gratis); diuji pada msys Git (Windows) instal:
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
atau, dari shell windows cmd.exe, baris kedua menjadi:
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
Perubahan (relatif terhadap Charles Bailey):
- ditambahkan ke global git config, yaitu valid untuk semua proyek git bukan hanya yang sekarang
- nilai konfigurasi alat kustom berada di "mergetool. [tool] .cmd", bukan "merge. [tool] .cmd" (konyol saya, menghabiskan satu jam pemecahan masalah mengapa git terus mengeluh tentang alat yang tidak ada)
- menambahkan tanda kutip ganda untuk semua nama file sehingga file dengan spasi masih dapat ditemukan oleh alat gabungan (saya menguji ini di msys Git dari Powershell)
- perhatikan bahwa secara default Perforce akan menambahkan dir instalasi ke PATH, sehingga tidak perlu menentukan path lengkap ke p4merge dalam perintah
Unduh: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
EDIT (Feb 2014)
Seperti yang ditunjukkan oleh @Gregory Pakosz , msys git terbaru sekarang "secara native" mendukung p4merge (diuji pada 1.8.5.2.msysgit.0 ).
Anda dapat menampilkan daftar alat yang didukung dengan menjalankan:
git mergetool --tool-help
Anda akan melihat p4merge dalam daftar yang tersedia atau valid . Jika tidak, silakan perbarui git Anda.
Jika p4merge terdaftar sebagai tersedia , itu ada di PATH Anda dan Anda hanya perlu mengatur merge.tool :
git config --global merge.tool p4merge
Jika terdaftar sebagai valid , Anda harus mendefinisikan mergetool.p4merge.path selain merge.tool :
git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
- Di atas adalah contoh lintasan ketika p4merge dipasang untuk pengguna saat ini, tidak untuk seluruh sistem (tidak memerlukan hak admin atau ketinggian UAC)
- Meskipun
~
harus diperluas ke direktori home pengguna saat ini (jadi menurut teori jalan seharusnya ~/AppData/Local/Perforce/p4merge.exe
), ini tidak bekerja untuk saya
- Lebih baik memanfaatkan variabel lingkungan (mis.
$LOCALAPPDATA/Perforce/p4merge.exe
), Git tampaknya tidak memperluas variabel lingkungan untuk jalur (jika Anda tahu cara membuatnya bekerja, beri tahu saya atau perbarui jawaban ini)