我已经master
分支并完成feature-branch
的工作。将feature-branch
推到遥控器上。其他人的工作合并到master
。我将更改提取到master
,然后将我的本地版feature-branch
从已更新的master
重新绑定。
下次我尝试将feature-branch
推送到遥控器时我无法解决,因为它因为反射而与远程版本不同步。单独工作时我的解决方案是强制推动,但是有更好的解决方案吗?我的一个同事,而不是强行推动,做了拉动然后推动,但结果看起来很奇怪(当做拉动请求掌握时,其他人的提交出现了。)
答案 0 :(得分:3)
不要改变你推动的分支。
你应该永远不要改变历史(它通过推动而成为历史)。 Rebase改变了历史(其中包括修改)。
你可能会想:“我可以强迫它,对吧?”
没有:
每个拉feature-branch
的人都需要强行下一次拉动。更糟糕的是:如果有基于原始feature-branch
的提交,它们也需要更改。这将很快成为一场噩梦。
此时唯一的解决方案是还原您的rebase并将master
合并到feature-branch
。
一般来说,我建议永远不要改变并避免快进合并。可能有一段时间你会很高兴有一个有意义的历史,即使它看起来很难看。 如果线性历史不代表实际历史,则没有任何东西可以获得。
答案 1 :(得分:1)
重新启动已经推送的东西只有在开发人员很少的情况下才能真正实用,一方面可以计算它们,你可以与它们取得联系并让它们全部修复它们的复制品。
如果我想发布一些正在进行的工作但仍然保持打开以后重新定义它的选项,我会做一个或两个: