作業ノート

様々なまとめ、雑感など

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のサブコマンドとして実行できる。

参考