4

我创建了一个从开发中删除的功能分支。

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

我想将我的功能分支合并到他们的功能分支中,但是从开发中获取更改也是不可接受的。

所有分支都已推送。

本质上,我希望我的分支从 master 中删除而不是开发。

如何做到这一点?

我的第一个想法是可能会使用一些变基,但我不知道该怎么做。

4

2 回答 2

4

即使它已被推送,仍然可以重新设置您的分支,将其起点从 更改developmaster。但是,如果您需要发布它,它将需要强制推送,并且其他开发人员将不得不重做 fetch 或 pull。

为此,结帐yourbranch并执行

git rebase  --onto master develop

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

此外,如果您想要严格的开发历史,将两个独立的功能分支合并在一起通常不是最佳实践。如果您的分支确实需要其他分支的提交,更好的选择是等待其中一个分支合并回master.

于 2013-09-05T11:48:32.363 回答
2

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

接下来的命令会将my-feature分支中但不在开发分支中的所有提交提取到补丁文件中:

git checkout my-feature && git format-patch develop

切换到他们的功能分支并从补丁中挑选你的提交:

git checkout their-feature && git am -3 *.patch

-3如果您会遇到冲突,参数用于回退到 3 路合并。

于 2013-09-05T10:15:31.327 回答