Saat menggabungkan cabang di bawah kendali sumber, sering kali ada masalah konflik gabungan dengan pengembang lain.
Saya tahu bahwa kita bisa menggunakan vimdiff untuk mengubah kode perubahan terhadap kontrol sumber , tetapi adakah juga cara kita bisa menggunakan vimdiff untuk membantu menyelesaikan konflik konflik gabungan.
Secara pribadi saya lebih tertarik pada git tetapi akan berguna untuk memahami jika ada plugin / teknik untuk alat / sistem kontrol sumber lainnya.
vimdiff
version-control-systems
merge
Martin York
sumber
sumber
feature rich UI
ini menyesatkan; vimdiff mungkin tidak memiliki UI yang bagus, itu pasti kaya fitur. Saya juga menemukan lingkungan yang jauh lebih produktif dari semua editor GUI yang telah saya gunakan (tapi saya sudah menggunakannya untuk waktu yang lama dan itu adalah kurva pembelajaran yang curam). Saya lebih ingin tahu apakah Meld melakukan sesuatu yang tidak dilakukan vim yang akan membuatnya berharga bahkan ketika melihat.Jawaban:
Saya biasanya menggunakan git di baris perintah.
Tetapi ketika ada konflik gabungan saya menggunakan Vim untuk menyelesaikannya (secara pribadi saya melakukannya dengan plugin buron). Catatan: buron bagus untuk banyak manipulasi git dari dalam Vim. Fitur favorit saya adalah perbedaan 3 arah dari konflik gabungan.
git mendukung ini di vimdiff via git mergetool. Saya telah menginstal buron tetapi Anda dapat mengaturnya secara manual (Terima kasih @ Jay Thompson).
Pengaturan Manual:
Outputnya sedikit berbeda dengan yang dijelaskan di bawah ini (saya belum menggunakan ini secara pribadi). Tetapi prinsipnya sama tetapi Anda memiliki jendela keempat di bagian bawah yang berisi hasilnya.
Diatur dengan Buronan
vim-fugitive adalah plugin git wrapper / integrasi untuk Vim; ia dapat melakukan banyak hal, dan menyelesaikan konflik adalah salah satunya.
Anda sekarang dapat menarik dan mendapatkan teks dari dua tampilan lainnya ke tampilan tengah (yang akan berisi semua perbaikan manual). Setelah Anda menyelesaikan semua konflik secara manual cukup keluar dari vimdiff
Meskipun Anda dapat menggunakan
:diffget <view number>
dan:diffput <view number>
untuk menarik dan mendorong hal-hal di antara tampilan. Saya pribadi tidak menemukan itu sangat berguna. Semua kode sudah ada di tampilan tengah. Jadi saya hanya ingin mengedit tampilan itu secara manual hingga konflik diselesaikan. Mampu melihat kedua versi kode di kedua sisi jendela editor saya sangat berguna.Juga demo yang sangat bagus tentang penggunaannya di sini
sumber
git config --global merge.tool vimdiff
dan kemudian menjalankangit mergetool
untuk memulai vim dalam mode diff.diff3 -E
. Jadi gambar di atas dihasilkan dari file yang memiliki penanda ini di dalamnya.