はじめに
エンジニアに転職して3ヶ月経ちましたが、プルリクエスト(以下PR)をmergeするときはいまだに緊張します。特に初めてconflictが起きたときは、⚠️マークが表示されているのを見て、何かやらかしてしまったのではないかと焦りました…取り返しがつかないようなミスはしたくないですよね🥺
本日は、PRをmergeするときにConflictが起きた時の解消方法を教えていただいたので紹介します。Conflictが起きても、焦らずに対処できるようになりましょう!
背景
作業中のfeatureブランチからdevelopにPRを出している。
GitHub上でPRをmergeしようとしたところ、conflictが発生していることがわかった。
local環境でconflictを解消する方法を先輩から教わった。
PRをmergeするときにlocalでconflictを解消する手順
1. developブランチをpull
まずは、developブランチをpullして最新の状態にしておきましょう。
git checkout develop
git pull origin develop
2. featureブランチに移動してmerge
次に、作業中のfeatureブランチに切り替えて、1.で最新化したdevelopブランチをfeatureブランチにmergeします。
git checkout feature-branch
git merge develop
ここでconflictが発生します。
local環境で起きているだけなので、焦らずに対処しましょう。
3. conflict解消
conflictが発生した場合、VSCodeやForkなどのツールを使用してConflictを解消します。
私は、簡単な変更であればFork上で解消していますが、ソースコードの前後を見ないと判断できないような場合はVSCode上で確認しています。
どちらの修正を取り入れればいいのかをじっくり考えましょう。
4. commit
conflictを解消したら、変更内容をcommitします。
git add .
git commit -m "Merge: Resolve conflict"
5. developブランチにpush
解決したconflictを含むfeatureブランチをdevelopブランチにpushします。
git push origin feature-branch
6. PRを再度merge
これで、conflictが解消されたfeatureブランチがGitHub上のリポジトリにpushされ、PRが再度merge可能になりました。GitHub上でmergeしましょう🎉
終わりに
local環境ではなく、GitHub上でもconflictを解消することはできますが、より安全に対応するために、git操作に慣れるまでは控えた方が良さそうです。
対処方法がわかっていればconflictが起きてしまっても焦らずに対処できそうです。もし自分1人で不安な場合は、先輩に確認してもらいながらmergeしましょう!!