Baru-baru ini saya menggunakan GitExtension 2.46, tetapi versi Git yang sama adalah 1.9.4.msysgit.2. Karena hanya ingin menggunakan perintah Git, saya menghapus GitExtension dan menginstal versi terbaru yang tersedia dari Git dan KDiff3 .
Ketika saya membuat penggabungan dan memiliki konflik, saya menjalankan perintah berikut:
$ git mergetool
Lalu saya menerima pesan:
Alat gabungan kdiff3 tidak tersedia sebagai 'kdiff3'.
Saya kira itu harus melalui jalur KDiff3.
Lingkungan Hidup
- OS: Windows 10
- Git 2.6.1.windows.1
- KDiff3 0.9.98 (64 bit)
Pertanyaan:
Apa yang harus saya konfigurasikan dalam file .gitconfig agar perintah
$ git mergetool
untuk membuka GUI KDiff3 dengan versi LOCAL , REMOTE , BASE , dan MERGED dari file yang konflik?Bagaimana mengkonfigurasinya untuk menggunakannya memiliki alat yang berbeda?
Jawaban:
Situs-situs ini sangat membantu, hampir, mergetool dan difftool . Saya menggunakan konfigurasi global, tetapi dapat digunakan oleh repositori tanpa masalah. Anda hanya perlu menjalankan perintah berikut:
Penggunaan
trustExitCode
opsi tergantung pada apa yang ingin Anda lakukan ketika alat berbeda kembali. Dari dokumentasi :sumber
git config --global --add diff.guitool kdiff3
ini menjadi ini:git config --global --add diff.tool kdiff3
--add
akan menambahkan entri kedua atau ketiga ketika dipanggil beberapa kali. Itu sulit diperbaiki nanti, karena tidak bisa dihapus begitu saja--remove
. Hanya menetapkan nilai tanpa--add
harus ok.Hanya untuk memperluas jawaban @ Joseph :
Setelah menerapkan perintah-perintah ini
.gitconfig
file global Anda akan memiliki baris berikut (untuk mempercepat proses Anda cukup menyalinnya dalam file) :sumber
.gitconfig
File yang saya edit bukan yang digunakan. Lihat stackoverflow.com/questions/2114111/… untuk mengidentifikasi yang sedang dimuat. (2) Jangan mencampur dan mencocokkancmd =
danpath =
di gitconfig, TL; DR: delete cmd dan cukup gunakan pathUntuk pengguna Mac
Berikut adalah jawaban yang diterima @ Joseph, tetapi dengan lokasi jalur instal default Mac
kdiff3
(Perhatikan bahwa Anda dapat menyalin dan menempel ini dan menjalankannya dalam sekali jalan)
sumber
--add
karena itu dapat menghasilkan 2 entri konfigurasi jika Anda menjalankan perintah dua kali. Ini berantakan membersihkan ini, karena Anda tidak dapat menghapus satu entri lagi. Lihat git-scm.com/docs/git-config : "Beberapa baris dapat ditambahkan ke opsi"Nah, masalahnya adalah bahwa Git tidak dapat menemukan KDiff3 di% PATH%.
Dalam instalasi Unix khas semua executable berada di beberapa lokasi terkenal (
/bin/
,/usr/bin/
,/usr/local/bin/
, dll), dan satu dapat meminta program dengan hanya mengetik namanya di prosesor shell (misalnyacmd.exe
:)).Di Microsoft Windows, program biasanya dipasang di jalur khusus sehingga Anda tidak bisa mengetikkan
kdiff3
acmd
sesi dan mendapatkan KDiff3 berjalan.Solusi sulit: Anda harus memberi tahu Git ke mana menemukan KDiff3 dengan menentukan path lengkap ke
kdiff3.exe
. Sayangnya, Git tidak menyukai spasi dalam spesifikasi path dalam konfigurasi, jadi terakhir kali saya membutuhkan ini, saya berakhir dengan "C: \ Progra ~ 1 ... \ kdiff3.exe" kuno seolah-olah sudah terlambat 1990-an :)Solusi sederhana: Edit pengaturan komputer Anda dan sertakan direktori dengan kdiff3.exe di% PATH%. Kemudian uji apakah Anda dapat memanggilnya dari cmd.exe dengan namanya dan kemudian jalankan Git.
sumber
Saya perlu menambahkan parameter baris perintah atau KDiff3 hanya akan terbuka tanpa file dan meminta saya untuk basis, lokal dan jarak jauh. Saya menggunakan versi yang disertakan dengan TortoiseHg .
Selain itu, saya harus menggunakan nama file DOS 8.3 lama yang bagus.
Namun, sekarang berfungsi dengan benar.
sumber
Untuk mengubah keris ' jawabannya , dimulai dengan Git 2.20 (Q4 2018), perintah yang tepat untuk
git mergetool
akanItu karena "
git mergetool
" belajar mengambil pilihan "--[no-]gui
", sama seperti "git difftool
" dilakukan.Lihat komit c217b93 , komit 57ba181 , komit 063f2bd (24 Okt 2018) oleh Denton Liu (
Denton-L
) .(Digabung oleh Junio C Hamano -
gitster
- dalam komit 87c15d1 , 30 Okt 2018)sumber
(Ketika mencoba mencari tahu cara menggunakan kdiff3 dari WSL git, saya akhirnya sampai di sini dan mendapatkan bagian terakhirnya, jadi saya akan memposting solusi saya untuk orang lain yang juga tersandung di sini ketika mencoba menemukan jawaban itu)
Cara menggunakan kdiff3 sebagai alat diff / merge untuk WSL git
Dengan pembaruan Windows 1903 itu jauh lebih mudah; cukup gunakan wslpath dan tidak perlu membagikan TMP dari Windows ke WSL karena sisi Windows sekarang memiliki akses ke sistem file WSL melalui \ wsl $:
Sebelum Windows memperbarui 1903
Langkah-langkah untuk menggunakan kdiff3 yang diinstal pada Windows 10 sebagai alat diff / merge untuk git di WSL:
sumber