はじめに
プルリクエストをした際に、「1 commit behind "master"」が発生しているという指摘をいただいたため、その対応の記録です。
状況
恥ずかしながら、指摘を受けた段階では、何が起きているのか理解できていませんでした。
そこでブランチを見に行ったところ、以下の画像のような状況でした。
赤線がmasterブランチ、緑線が開発ブランチです。
赤丸のところで、開発ブランチ(develop1)をmasterブランチにマージし、その後、別の開発ブランチ(develop2)を切って、次の作業を開始し、緑丸の上から3つ目のところで、プルリクエストをして、「1 commit behind "master"」が発生しました。
原因
今となっては、何をしてしまったのか、よくわからないというのが正直なところではありますが、develop1ブランチをmasterブランチにマージするときか、develop2ブランチを切るときに何かやらかしたのだと思います。
※レビュー待ちの時間に、次にやることをあれこれとコードを触りながら考えていたので、それが失敗の元だったと思います。皆さんは、お気をつけください。
対応
まずは、ローカルリポジトリのmasterブランチにリモートリポジトリのmasterブランチを反映させます。
git checkout master
git pull origin master
次に、現在の開発ブランチ(develop2)にmasterブランチをマージします。
git checkout develop2
git merge master
コンフリクトが発生していれば、ここで解消する必要があるかと思いますが、私の場合は、コードを修正していたわけではないので、コンフリクトは発生していませんでした。
あとは、いつもどおり、commit、pushで完了です。
git commit -m "behindの解消"
git push origin develop2
これにより、上記画像のとおり、赤線(master)と緑線(develop2)が合流しました。
さいごに
さて、いかがでしたでしょうか?
コンフリクトの解消についての記事は割と出てくるのですが、「○ commit behind "〇〇"」などで検索しても解決方法がなかなか見つけられなかったので、記事にしてみました。