Help us understand the problem. What is going on with this article?

pull requestでCan't automatically merge発生の場合の対応

More than 1 year has passed since last update.

pull requestでCan't automatically merge発生の場合の対応

※用語の定義
hogehogeブランチ => 自身が開発するブランチ
developブランチ => チームの各人が開発したブランチをmergeするブランチ

《発生した問題》
git push でリモートにあげたhogehogeブランチをdevelopブランチへpull requestしたところCan't automatically mergeのエラーがでてmergeが出来ない。

error_img.png

《原因》
実装前にベースコードとしてローカルにpullしたdevelopブランチとリモートにあったdevelopブランチが合致しなかったので、conflictが起きていた。

※用語の定義
実装前にリモートからpullしたdevelopブランチ => developA
pull requestした際にリモートに存在していたdevelopブランチ => developA+
developブランチのコード => ベースコード

ローカルでdevelopAをベースに作成したhogehogeブランチを実装中にも、リモート側でdevelopAの実装が進み、developA+となっていた。
そうなると、pull requestを出したときに、developの部分がAとA+の差分だけ異なるので、mergeができない。
※イメージ図の左から右へ時間が経過しています。

fail.png

《解決策》
ローカル上のdevelopAをリモート上と同じdevelopA+にして(pullして)、hogehogeブランチがそのdevelopA+をmergeすれば差分がなくなり、developブランチへmergeできる。

success.png

コマンド

//hogehogeブランチにて実装完了
$ git add .
$ git commit -m "(コメント)"
$ git checkout develop
$ git pull origin develop # リモートのdevelopA+をローカルのdevelopAへpull(fetchでも良い)
$ git checkout hogehoge
$ git rebase develop # gitmerge develop でも良い
// conflictするので、conflictした箇所を修正 (hogehogeブランチの中のdevelopAの部分をdevelopA+へ変更する作業)
// conflictを修正したコードを保存
$ git add .
$ git rebase --continue
$ git push origin hogehoge -f # 強制的な force push 

以上です。

hibriiiiidge
Ruby(Rails)を書いています。前はPHPでした。output大事。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした