Site cover image

Site icon image OSKA’s BLOG

記事にするまでもないアウトプット置き場

Git おすすめ環境設定

.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を設定する場合

  1. HomebrewでGitをインストール
  2. 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で検索。