Katakanlah saya memiliki konflik gabungan. Saya melihat file yang konflik seperti ini:
Unstaged changes:
Unmerged Foo/bar/wibble/plop/elbow.txt
Saya dapat menekan tab di sini untuk membuka perubahan dan mungkin melompat ke titik di dalam file untuk memperbaikinya dengan tangan, tetapi jika itu adalah file besar dengan banyak konflik yang dapat memakan waktu.
Bagaimana saya bisa meminta git, melalui magit, untuk memeriksa versi file kita atau mereka, untuk menyelesaikan konflik? Saya dapat menyalin path, lalu gunakan Shift-:
untuk memasukkan perintah custom git, tetapi sepertinya harus ada pintasan keyboard untuk ini. Saya tidak dapat melihat sesuatu yang jelas di menu magit atau ?
pop-up.
magit-status
dan tekane
untuk memulai penggabungan 3 arahediff
. Alternatif lain adalah bahwa dalam buffer konflik, Anda dapat mengaktifkansmerge-mode
untuk menyoroti konflik dan melakukan penggabungan interaktif di buffer Anda (bukan ediff). Pengikatan kunci awalan untuksmerge-mode
perintah terkait adalahC-c ^
; Anda dapat menekanC-c ^ C-h
untuk melihat semua ikatan kunci.k
pada sebuah confict dan memilih versi mana yang akan disimpan. Kedengarannya sempurna! github.com/magit/magit/issues/1643Jawaban:
Saya tidak yakin kapan fitur ini ditambahkan, tetapi ia melakukannya dengan sempurna:
Merging master
, danUnstaged changes
,Staged changes
. File yang konflik ada diUnstaged changes
k
untuk membuang perubahan (yaitu, perubahan yang bertentangan)For <conflicted file> checkout: [o]ur stage, [t]heir stage, [c]onflict, or [C-g] to abort
sumber
Ada beberapa solusi:
M-x smerge-ediff
. Ini akan menempatkan Anda dalam mode tekad ediff, dengan empat buffer terbuka: milik Anda, milik mereka, gabungan, dan buffer perintah. Di buffer perintah, Anda menggunakann
danp
untuk pergi ke bagian berikutnya atau sebelumnya, "a" atau "b" untuk menerima perubahan dari buffer pertama atau kedua, atau Anda dapat pergi ke buffer gabungan, dan mengeditnya sesuai keinginan Anda.e
pada versi stabil dari magit, atauM-e
atauM-m
(magit-ediff-resolve
) di cabang magit berikutnya, dan kemudian Anda akan menemukan diri Anda kebanyakan seperti dalam kasus pertamaC-c ^ n
danC-c ^ p
akan membantu Anda beralih dari sebongkah ke yang sebelumnya atau berikutnya, Anda kemudian dapat mengeditnya, atau gunakanC-c ^ o
untuk menyimpan versi 'lain',C-c ^ m
untuk mempertahankan versi 'milikku',C-c ^ b
untuk mempertahankan yang lama versi danC-c ^ a
untuk menyimpan semuanya.sumber