首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git rebase从

Git rebase从
EN

Stack Overflow用户
提问于 2013-09-05 17:09:24
回答 2查看 221关注 0票数 4

我创建了一个功能分支,它是从开发中切下来的。

另一个开发人员从master中删除了他们的功能分支。

我希望将我的feature分支合并到他们的feature分支中,但也不能接受develop的更改。

所有分支都已被推送。

从本质上讲,我希望我的分支已经从master中被切断,而不是开发。

如何才能做到这一点?

我的第一个想法是也许可以使用rebase,但我不知道怎么做。

EN

回答 2

Stack Overflow用户

发布于 2013-09-05 19:48:32

即使分支已经被推送,仍然可以重新建立分支的基础,将其起点从develop更改为master。然而,如果您需要发布它,它将需要强制推送,而其他开发人员将不得不重做获取或拉取。

为此,请签出yourbranch,然后执行以下操作

代码语言:javascript
复制
git rebase  --onto master develop

然后,您将能够合并两个分支,因为它们具有相同的起点,合并将更加清晰,并强制推送结果。如果您不需要推送yourbranch,而是将它合并回master,那么简单地推送master分支就足够了。

此外,如果您想要严格的开发历史,将两个独立的特性分支合并在一起通常不是最佳实践。如果您的分支确实需要另一个分支的提交,则更好的替代方法是等待其中一个分支合并回master

票数 4
EN

Stack Overflow用户

发布于 2013-09-05 18:15:31

注意:此解决方案假定您的项目根目录中没有任何*.patch文件。

下一个命令将把位于my-feature分支中但不在develop分支中的所有提交提取到补丁文件中:

代码语言:javascript
复制
git checkout my-feature && git format-patch develop

切换到their-feature分支并从补丁中挑选提交:

代码语言:javascript
复制
git checkout their-feature && git am -3 *.patch

-3参数用于回退到3向合并,如果你会得到冲突。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18632217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档