0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Git で squash merge後にmergeされたコミットを含むbranchがコンフリクトするのを解決する

Last updated at Posted at 2024-10-14

問題

feature-branch-a から生やした feature-branch-b で開発中に、feature-branch-amainにマージされると feature-branch-bmainとコンフリクトする。

特にSquash Mergeを使っていると起こる

解決方法

自分のローカルに feature-branch-aが残っていれば、以下の用にすることで、feature-branch-afeature-branch-bの差分をorigin/mainに乗せることができる。

g rebase --onto origin/main feature-branch-a feature-branch-b

その他

feature branchでなくても、自分が作業していたPRをマージした後に、同じbranch上で続けて作業コミットを載せてしまい、これもPR作成時にコンフリクトが発生する。

この場合は上のやり方をブランチで見ていると修正方法がわからなくなるが、このケースは以下のようにすれば解決できる。

g rebase --onto origin/main <すでにマージされ済みの最新のCommit> my-branch

解釈としては、以下のように

1つ目指定したcommit or branch2つ目指定したcommit or branchの差分をorigin/mainに乗せる」とおぼえておけば迷わなくなる

g rebase --onto origin/main <すでにマージされ済みの最新のCommit> <自分の作業しているbranch or 載せたい最新のCommit>

Ref

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?