1年ほど前にgitのmergetool
をvimdiff
からvscode
の3-wayに乗り換えて馴染んできたので、設定方法のメモと布教です。
設定方法
メインのエディタでVSCodeを使っていて、git操作もその中で完結している場合は、VSCode自体の設定でgit.mergeEditor
をtrue
にするだけで良いです。
一方で、IDE勢でgit操作だけターミナルを使うような場合は、git config
から設定する必要があります。
git config --global merge.tool vscode git config --global mergetool.vscode.cmd 'code --wait --new-window --merge $LOCAL $REMOTE $BASE $MERGED'
.gitconfig
ではこのようになります。
[merge] tool = vscode [mergetool "vscode"] cmd = code --wait --new-window --merge $LOCAL $REMOTE $BASE $MERGED
簡単な解説を付け加えると、--wait
(-w
)オプションがVSCodeで該当のファイルが閉じられるまでシェル側で待つ、--new-window
(-n
)オプションが新しくウィンドウを作成するというものです。
git mergetool
でVSCodeの新しいウィンドウが開き、閉じると次のファイルに移ります。
所感
3-way merge editorは不評だったようで、一時期デフォルトだったものの、外されてしまいました。
操作は]c
やら1do
やらを打たずに、"Accept xxx"や、"x Conflict Remaining"をポチポチ押すだけなので、普段あまりvimを使わない場合はこちらの方が直感的で楽に感じました。