Git

ブランチのマージ中にコンフリクトしたとき

More than 1 year has passed since last update.
git version 2.12.2

自分用のメモ。
feature に master をマージする場合。

とりあえずマージをトライ

git checkout feature 
git merge master

コンフリクトしてたら共通コミットを確認

git merge --abort
git merge-base master feature

共通コミットからのdiffをそれぞれ見ながら最適なコードを検討

git addしたあとにgit diff --cachedを確認したらmasterの差分と一致しているのが理想。
単純に修正できないときは頑張るしかない。

git diff -p <commit> master <filepath>
git diff -p <commit> feature <filepath>
  • commitは共通コミットのハッシュ値
  • filepathはコンフリクトしているファイルのパス

ファイル名の変更などでfilepathがカレントブランチにない場合はエラーになるが
touch <filepath>で空ファイルを作ってあげれば大丈夫だった。
空ファイルの消し忘れや誤コミットに注意する。