用rebase修改git merge

问题描述 投票:3回答:1

tl;dr

我做了一个master -> feature合并来更新和解决实际合并之前的冲突。 我可以将功能重新绑定到master上并应用合并中的冲突解决方案吗?

What I have:
o               - TODO merge feature -> master
|\
| o     feature - "Merge remote-tracking branch 'origin/master' into feature"
|/|
o |     master         
| o             - "Implement some new feature here"
| |
...
|/  
o
What I want:
o               - TODO merge feature -> master
|\
| o     feature - "Implement some new feature here"
|/
o       master         
|
...
|
o

Long version

我想合并一个很老的功能分支并且有冲突,因为其他工作在同一时间合并到master。首先,我通过master -> feature合并更新了master的功能分支。现在我能够成功合并功能分支而不会发生冲突。但现在看着他的历史,我意识到我应该将我的功能重新定位到最新的大师身上。不幸的是,我不得不解决相当多的冲突,我可以重用当前状态吗?

git
1个回答
1
投票

正如Tim Biegeleisen评论的那样,您不能直接在rebase中重用合并提交(这是您解决冲突的地方)。

合并冲突在合并提交中解决,当您执行rebase master命令时,合并提交将会下降。

但是,如果合并冲突特别痛苦和/或如果您只进行了一些提交,则可以遵循以下工作流程:

  • 合并master成功能
  • 解决冲突
  • 对功能分支进行软重置
  • 存储变化
  • 丽贝卡大师
  • 重播你的藏匿处
  • 重新创建你的提交

通过执行软重置,保留合并后实际文件会发生更改,因此如果您只是进行变基,则无需按照需要的方式解决冲突。

© www.soinside.com 2019 - 2024. All rights reserved.