我创建了一个功能分支,它是从开发中切下来的。
另一个开发人员从master中删除了他们的功能分支。
我希望将我的feature分支合并到他们的feature分支中,但也不能接受develop的更改。
所有分支都已被推送。
从本质上讲,我希望我的分支已经从master中被切断,而不是开发。
如何才能做到这一点?
我的第一个想法是也许可以使用rebase,但我不知道怎么做。
发布于 2013-09-05 19:48:32
即使分支已经被推送,仍然可以重新建立分支的基础,将其起点从develop更改为master。然而,如果您需要发布它,它将需要强制推送,而其他开发人员将不得不重做获取或拉取。
为此,请签出yourbranch,然后执行以下操作
git rebase --onto master develop然后,您将能够合并两个分支,因为它们具有相同的起点,合并将更加清晰,并强制推送结果。如果您不需要推送yourbranch,而是将它合并回master,那么简单地推送master分支就足够了。
此外,如果您想要严格的开发历史,将两个独立的特性分支合并在一起通常不是最佳实践。如果您的分支确实需要另一个分支的提交,则更好的替代方法是等待其中一个分支合并回master。
发布于 2013-09-05 18:15:31
注意:此解决方案假定您的项目根目录中没有任何*.patch文件。
下一个命令将把位于my-feature分支中但不在develop分支中的所有提交提取到补丁文件中:
git checkout my-feature && git format-patch develop切换到their-feature分支并从补丁中挑选提交:
git checkout their-feature && git am -3 *.patch-3参数用于回退到3向合并,如果你会得到冲突。
https://stackoverflow.com/questions/18632217
复制相似问题