Saya sudah mencoba msysGit dan Git di Cygwin. Keduanya bekerja dengan baik di dalam dan dari diri mereka sendiri dan keduanya menjalankan gitk dan git-gui dengan sempurna.
Sekarang bagaimana cara saya mengkonfigurasi mergetool? (Vimdiff bekerja pada Cygwin, tetapi lebih baik saya menginginkan sesuatu yang sedikit lebih ramah pengguna untuk beberapa rekan kerja kami yang menyukai Windows.)
Jawaban:
Untuk menindaklanjuti jawaban Charles Bailey, inilah setup git saya yang menggunakan p4merge (alat penggabungan 3way cross-platform gratis); diuji pada msys Git (Windows) instal:
atau, dari shell windows cmd.exe, baris kedua menjadi:
Perubahan (relatif terhadap Charles Bailey):
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:
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 :
Jika terdaftar sebagai valid , Anda harus mendefinisikan mergetool.p4merge.path selain merge.tool :
~
harus diperluas ke direktori home pengguna saat ini (jadi menurut teori jalan seharusnya~/AppData/Local/Perforce/p4merge.exe
), ini tidak bekerja untuk saya$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)sumber
mergetool.p4merge.cmd
tidak akan berfungsi lagi karena Git sudah mulai mencoba mendukung p4merge, lihatlibexec/git-core/git-mergetool--lib
. alih-alih langsung menggunakanmergetool.p4merge.path
cmd = \""c:/Program Files/TortoiseSVN/bin/TortoiseMerge.exe"\" -base:"$BASE" -theirs:"$REMOTE" -mine:"$LOCAL" -merged:"$MERGED"
git config --global mergetool.p4merge.cmd '"C:\\Program Files\\Perforce\\p4merge" $BASE $LOCAL $REMOTE $MERGED'
pada mesin Windows 7pengaturan mergetool.p4merge.cmd tidak akan berfungsi lagi karena Git telah mulai mencoba untuk mendukung p4merge, lihat libexec / git-core / git-mergetool--lib.so kita hanya perlu menentukan jalur mergetool untuk git, misalnya p4merge:
Maka akan berhasil.
sumber
Saya menggunakan Portable Git di WinXP (berhasil!), Dan diperlukan untuk menyelesaikan konflik yang muncul dalam percabangan. Dari semua gui yang saya periksa, KDiff3 terbukti paling transparan untuk digunakan.
Tapi saya menemukan instruksi yang saya butuhkan untuk membuatnya berfungsi di Windows di posting blog ini , instruksi yang sedikit berbeda dari pendekatan lain yang tercantum di sini. Ini pada dasarnya sama dengan menambahkan baris-baris ini ke
.gitconfig
file saya :Bekerja dengan baik sekarang!
sumber
path = C:\\Program Files (x86)\\KDiff3\\kdiff3.exe
(perhatikan garis miring ganda)Di bawah Cygwin, satu - satunya hal yang berhasil untuk saya adalah sebagai berikut:
Juga, saya ingin mematikan pesan prompt untuk difftool:
sumber
git mergetool
sepenuhnya dapat dikonfigurasi sehingga Anda dapat memilih alat favorit Anda.Dokumentasi lengkapnya ada di sini: http://www.kernel.org/pub/software/scm/git/docs/git-mergetool.html
Secara singkat, Anda dapat mengatur mergetool default dengan mengatur variabel konfigurasi pengguna
merge.tool
.Jika alat gabungan adalah salah satu yang didukung secara bawaan, Anda hanya perlu mengatur
mergetool.<tool>.path
jalur lengkap ke alat tersebut (ganti<tool>
dengan apa yang telah Anda konfigurasimerge.tool
menjadi.Jika tidak, Anda dapat mengatur
mergetool.<tool>.cmd
agar sedikit shell dievaluasi saat runtime dengan variabel shell$BASE, $LOCAL, $REMOTE, $MERGED
diatur ke file yang sesuai. Anda harus sedikit berhati-hati dengan melarikan diri apakah Anda langsung mengedit file konfigurasi atau mengatur variabel dengangit config
perintah.Sesuatu seperti ini harus memberi rasa apa yang dapat Anda lakukan ('mymerge' adalah alat fiksi).
Setelah Anda menyiapkan alat penggabungan favorit Anda, itu hanya masalah berjalan
git mergetool
setiap kali Anda memiliki konflik untuk diselesaikan.Alat p4merge dari Perforce adalah alat penggabungan mandiri yang cukup bagus.
sumber
Untuk membandingkan luar biasa pada Windows 7
sumber
Tampaknya versi git yang lebih baru mendukung p4merge secara langsung, jadi
harus menjadi semua yang Anda butuhkan, jika p4merge.exe ada di jalur Anda. Tidak perlu mengatur cmd atau path.
sumber
Seperti yang sudah dijawab di sini (dan di sini dan di sini ), mergetool adalah perintah untuk mengkonfigurasi ini. Untuk tampilan grafis yang bagus saya sarankan kdiff3 (GPL).
sumber
Saya harus menghapus kutipan tambahan menggunakan msysGit di windows 7, tidak yakin mengapa.
sumber
Jika Anda melakukan ini melalui cygwin, Anda mungkin perlu menggunakan cygpath:
sumber
Bah, ini akhirnya berhasil untuk saya (Windows 7 + Cygwin + TortoiseMerge):
Dalam .git / config:
Terima kasih untuk poster sebelumnya untuk tip menggunakan cygpath!
sumber
saya menggunakan aplikasi bernama WinMerge ( http://winmerge.org/ ) info dari manual mereka ( http://manual.winmerge.org/CommandLine.html )
ini adalah skrip bash yang saya gunakan dari
mergetool
direktif via.gitconfig
pada dasarnya bash menyumbang ketika hasil diff dalam file kosong dan membuat file temp baru di lokasi yang benar.
sumber
Saya menemukan dua cara untuk mengkonfigurasi " SourceGear DiffMerge " sebagai difftool dan mergetool di github Windows.
Perintah berikut di jendela Command Prompt akan memperbarui .gitconfig Anda untuk mengonfigurasi GIT menggunakan DiffMerge:
[ ATAU ]
Tambahkan baris berikut ke .gitconfig Anda. File ini harus di direktori home Anda di C: \ Users \ UserName:
sumber
Anda mungkin ingin menambahkan opsi ini juga:
Juga, saya tidak tahu mengapa tetapi kutipan dan tebasan dari jawaban Milan Gardian mengacaukan segalanya bagi saya.
sumber
Jika ada yang ingin menggunakan gvim sebagai alat diff mereka di TortoiseGit, maka inilah yang perlu Anda masukkan ke input teks untuk path ke alat diff eksternal:
sumber
Untuk IntelliJ IDEA (Edisi Komunitas) konfigurasi gget-meritool 3-arah di lingkungan Windows (
~/.gitconfig
)Cygwin
Nyonya
~ / Winpath.sh adalah untuk mengonversi jalur ke Windows di msys dan diambil dari pertanyaan konversi jalur msys di stackoverflow
sumber
Untuk mengatur p4merge, diinstal menggunakan chocolate di windows untuk penggabungan dan diff, lihat di sini: https://gist.github.com/CamW/88e95ea8d9f0786d746a
sumber
Jika Anda mengalami masalah dalam membuka p4merge dari SourceTree, cari file konfigurasi lokal bernama config di bawah MyRepo.git dan hapus semua konfigurasi gabungan. Dalam kasus saya itu mencoba membuka Meld yang baru saja saya uninstall
sumber