日々、雑雑と。

いろいろなことを垂れ流し

【備忘録】Merge Requestでのコンフリクト発生時の対応

tl;dr

MRのレビューが終わってfeature/abcブランチをmasterにmergeしようとした時にコンフリクトが発生した場合は以下の工程に沿って解消する。

git checkout feature/abc
git fetch origin
git merge master // 競合が発生するのでなんとか解決する
...
// resolve conflict
...
git add . // 競合を解決したファイルをステージ
git commit // コミット
git push origin feature/abc

pushし終えたら、再度レビューしてもらい、権限のある人にmergeしてもらう。

背景

なぜ今更こんな備忘録を残すかというと、つい先日、脳死して何故か以下のような方法でコンフリクトを解決しちゃったため。mergeの方向が真逆になっただけなので、ちゃんとコンフリクトを解決してあげれば、結果は上の方法と差異はない。更に無駄にブランチ生やしちゃってるが、ほんと無駄。

git fetch origin
git checkout -b workspace origin/master
git merge feature/abc // 競合が発生するのでなんとか解決する
...
// resolve conflict
...
git add . // 競合を解決したファイルをステージ
git commit // コミット
git checkout feature/abc
git merge workspace // fast-forward
git push origin feature/abc

その後

Merge直前に過去のコミットメッセージにいちゃもん付けられたので、rebase -i HEAD~39485789347592348579234785してeditしてcommit --amendした。おわり