Git 是否将功能分支与不带重基的主功能同步?
在工作中,我们在功能分支模型的基础上进行开发,在该模型中,所有集成最终都在Git 是否将功能分支与不带重基的主功能同步?,git,git-merge,git-rebase,feature-branch,Git,Git Merge,Git Rebase,Feature Branch,在工作中,我们在功能分支模型的基础上进行开发,在该模型中,所有集成最终都在主分支中进行。我们从master和merge分支到master。这导致了一个非常复杂的历史图表,我们正在寻找简化开发工作流程的方法 这样做的一种方法是重新设置基址,而不是合并。但是,我们安装了一个内部GitLab实例,其中禁用了覆盖权限(并且不会仅为我们的项目启用这些权限)。因此,重新设置基址是不可能的 我真的看不出有什么办法。但我不是Git专家,我可能遗漏了一些东西 有什么建议吗?编辑-我的第一个答案绝对不是最好的方法,
主分支中进行。我们从master
和merge分支到master
。这导致了一个非常复杂的历史图表,我们正在寻找简化开发工作流程的方法
这样做的一种方法是重新设置基址,而不是合并。但是,我们安装了一个内部GitLab实例,其中禁用了覆盖权限(并且不会仅为我们的项目启用这些权限)。因此,重新设置基址是不可能的
我真的看不出有什么办法。但我不是Git专家,我可能遗漏了一些东西
有什么建议吗?编辑-我的第一个答案绝对不是最好的方法,尽管它会起作用。我把它放在下面,以防有人感兴趣。更好的答案如下:
您可以与一系列提交一起使用,将featurebranch
一次提交一个提交到master
。任何提交范围规范都可以,但在您的情况下,最简单的可能是(在已签出master的情况下):
这意味着“樱桃摘下所有在featurebranch上但不在master上的东西”
旧的、糟糕的解决方案
你可以使用和
在分支上运行featurebranch
时,运行git格式补丁主程序
将为featurebranch
上未在master
上的每个提交生成补丁文件。然后,您可以切换到master
,并使用git-am
应用修补程序
(在更简单的情况下,featurebranch
没有与任何人共享,那么您可以改为针对featurebranch
重新设置featurebranch
的基础,而不是针对master
重新设置featurebranch
,这将使featurebranch
成为具有额外佣金的master
的副本。)ts在顶部,然后根据featurebranch
重新设置master
的基址,这将使git快进master
)在最新的主机上创建一个新的分支,并在新的分支上应用来自功能分支的所有提交。这将创建一个在主机上重设基础的新分支。我想这是一个明智的解决方案@BartlomiejLewandowski。我认为这太混乱,开销太大。我意识到有一个非常简单的方法,我想e编辑了我的答案,将其包括在内。
git cherry-pick featurebranch ^master