使用rebase

时间:2018-03-05 10:54:15

标签: git

TL;博士

我已经完成master -> feature合并,以便在实际合并之前更新和解决冲突 我可以将功能重新绑定到master上并应用合并中的冲突解决方案吗?

是)我有的:
o               - TODO merge feature -> master
|\
| o     feature - "Merge remote-tracking branch 'origin/master' into feature"
|/|
o |     master         
| o             - "Implement some new feature here"
| |
...
|/  
o
我想要的是:
o               - TODO merge feature -> master
|\
| o     feature - "Implement some new feature here"
|/
o       master         
|
...
|
o

长版

我想合并一个相当陈旧且存在冲突的功能分支,因为其他工作同时合并为主。首先,我通过master -> feature合并从master更新了功能分支。现在我能够成功合并功能分支而不会发生冲突。但现在看着他的历史,我意识到我应该将重新设置我的功能改为最新的主人。不幸的是,我不得不解决相当多的冲突,我可以重用当前状态吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

  • master合并到功能
  • 解决冲突
  • 对功能分支进行软重置
  • 存储更改
  • rebase master
  • 重播你的藏品
  • 重新提交您的提交

通过执行软重置,实际文件在合并后保存,因此您不需要像刚刚重新定位时那样解决冲突。< / p>