eve*_*1nd 12 git merge branch rebase
今天我遇到了一个问题.我的队友从大师那里创建了分支.他在这个分支中开发了一个特征,然后在子特征的分支中开发了两个子特征.最后他对整个事情做了两次重构.所以...
C--D E--F | subfeatures
/ \ / \
B------M1------M2--G--H | feature
/
A-------------------K | master
Run Code Online (Sandbox Code Playgroud)
通常我们在将no-fast-forward合并到master之前对功能分支进行rebase.但当然这个rebase失败了.重新定义的功能分支看起来像:
B'--C'--D'--E'--F'--G'--H'
/
A--K
Run Code Online (Sandbox Code Playgroud)
当然,C&D的指针也出错了,所以我还得到了两个从空中成长的子功能分支.如果子特征分支没有合并到特征中,我理解如何修复它,但此时我很困惑.我在精心挑选的恢复分支中挑选了所有内容并再次合并.这是一个更简单的方法吗?
Von*_*onC 14
请注意,您需要git1.7.6 + git rebase --preserve-merges才能正常工作.
rebase --preserve-merges --onto之前没有用(" git rebase --preserve-merges --onto不保留合并 ")rebase --preserve-merges在某些情况下有问题:
长话短说:你刚刚完成了一次合并,有人在你能够推动你的推动之前推动了一次提交.解决方案是让git意识到你所做的合并.
git rebase --preserve-merges <upstream>
Run Code Online (Sandbox Code Playgroud)
要么
git rebase -p <upstream>
Run Code Online (Sandbox Code Playgroud)
但是有一个问题,如果你的合并有你解决的冲突,他们就不会被rebase机器拿走.
而且你最终会再次解决冲突......至少git版本为1.7.5.4就是这种情况
(那会要求git rerere)
| 归档时间: |
|
| 查看次数: |
7781 次 |
| 最近记录: |