.gitconfig
[core]
quotepath = false # 日本語ファイル名をエンコードしない
[log]
date = iso # `git log`の日時フォーマットを見やすくする
[fetch]
prune = true # `git fetch/pull`時にリモートで削除されているブランチを自動で削除
[merge]
conflictStyle = diff3 # コンフリクト時の差分表示時にベースコミットも表示する
# 各種コマンドのdiff表示時に単語差分をハイライト表示
[pager]
log = diff-highlight | less
show = diff-highlight | less
diff = diff-highlight | less
Macでdiff-highlightを設定する場合
- HomebrewでGitをインストール
- diff-highlightにシンボリックリンクを貼る
brew install git
sudo ln -s /usr/local/share/git-core/contrib/diff-highlight/diff-highlight \
/usr/local/bin/diff-highlight
merge.conflictStyle について
merge.conflictStyleにはmerge
(default)とdiff3
がある。
コンフリクトしている差分同士には必ず共通する親コミットが存在するが、diff3
にすると親コミット時点のコードも表示されるようになるので、チーム開発時は自分以外のメンバーがどういう意図で変更を加えたのかをある程度確認しながらコンフリクト解消ができる。
merge
<<<<<<< HEAD
変更後A
=======
変更後B
>>>>>>> hotfix
diff3
<<<<<<< HEAD
変更後A
||||||| merged common ancestors
変更前
=======
変更後B
>>>>>>> hotfix
詳細はgit 3-way mergeで検索。