同步功能分支与master没有rebase?

时间:2014-11-11 16:27:02

标签: git git-merge git-rebase feature-branch

在工作中,我们在功能分支模型的基础上开发,所有集成最终都在master分支中。我们从master合并分支到master。这导致了一个非常复杂的历史图表,我们正在寻找简化开发工作流程的方法。

这样做的一种方法是 rebase 而不是合并。但是,我们安装了一个内部GitLab实例,其中禁用了覆盖权限(并且它们不会仅为我们的项目启用)。因此 rebase 是不可能的。

老实说,我没有看到任何解决方法。但我不是Git专家,我可能会遗漏一些东西。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

编辑 - 我的第一个答案绝不是最好的方法,尽管它会起作用。我把它留在了下面,以防任何人感兴趣。更好的答案如下:

您可以使用git cherry-pick一系列提交将featurebranch次提交一次应用到master。任何提交范围规范都可以,但在您的情况下,最简单的可能是(检出主控):

git cherry-pick featurebranch ^master

这意味着'樱桃 - 选择不在主人身上的featurebranch上的所有东西'。

旧的,糟糕的解决方案

您可以使用git format-patchgit am

在分支featurebranch上,运行git format-patch master将为featurebranch上的master上的每个提交生成一个补丁文件。然后,您可以切换到master并使用git am应用修补程序。

(在没有与任何人分享featurebranch的更直接的情况下,您可以改为master反对featurebranch而不是featurebranch。 {1}},masterfeaturebranch的副本设置为最高权限,然后针对master重新master,这将使git快进featurebranch {1}}。)