gitでvimを使ってmergeする
git mergeなどで衝突したとき、vimを使って解消する方法。
1. mergetoolを設定する
git mergetoolの設定をする。
$ git config --global mergetool.vimdiff3.cmd 'vimdiff -c "wincmd J" "$MERGED" "$LOCAL" "$BASE" "$REMOTE"'
2. shellスクリプトを作成する
PATHが設定されているディレクトリ($HOME/binなど)に、スクリプトを作成する。
$ vi $HOME/bin/git-vmerge
#!/bin/bash
set -eu
if [ $# -eq 0 ]; then
echo "Nothing specified." >&2
echo "Maybe you want to say 'git vmerge .'?" >&2
exit 1
fi
git mergetool -t vimdiff3 -y "$@"
ファイル名は、git-vmerge
にする。そして、実行権限をつける。
$ chmod 755 $HOME/bin/git-vmerge
こうすると、gitコマンドで
$ git vmerge /path/to/file
のように、gitのサブコマンドとして実行できる。