Git:如何防止特定提交被 merge 到另一个分支?

标签 git merge

我们公司的 Git 工作流程如下:我们有一个 master 分支,一些 feature/* 分支用于开发新功能,并 merge 回 master 当工作完成时,还有 release/* 分支。这些分支是在产品发布之前创建的,专为错误修复而设计,没有新功能,然后这些错误修复偶尔会 merge 回 master 分支。

有时,release/* 分支中的特定提交是我们不想想要 merge 回的更改master:例如当版本号递增时。由于分支中还有其他重要的修复,肯定有人 迟早会将上述 local 提交 merge 到 master 中,从而破坏分支中的某些内容主要分支。

我所知道的当前“解决方案”是在本地提交完成后立即将 release/* 分支 merge 到 master 中,还原 本地提交然后推送。它有点管用,但历史并不干净。此外,这不会阻止本地提交被 merge 到 master 之外的另一个分支。

在所描述的工作流程中是否有更好的方法来解决该问题?

最佳答案

据我所知,如果不 merge 其所有父提交,就不可能 merge 提交,这听起来像您正在尝试做的事情。

但是,对您的工作流程稍作更改可能会解决此问题。

类似于Git Flow模型,您可以创建一个 hotfix/* 分支来修复错误,而不是直接提交到 release 分支。这个分支可能应该基于 master (在第一次提交时是任何相关 release 分支的父级),并且应该 merge 到 master 以及它影响的任何 release 分支。

这样一来,release 分支永远不需要 merge 到 master 中,并且可以保留用于特定于版本的修复。

关于Git:如何防止特定提交被 merge 到另一个分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36437009/

相关文章:

Python:如何在矩阵和数据帧之间映射值?

Git命令查找哪些分支被 merge 到当前分支以及何时

python - 合并字典项值的重复列表

git - 我可以丢弃本地 Git 存储库中不需要的提交吗?

git - 我如何从 Jenkins 的 ${GIT_BRANCH} 中删除 "origin"?

git - 部署期间的 aws codedeploy git 修订版

python - 如何合并两个 python 迭代器?

git - 在TortoiseGit中,哪个是MERGE_HEAD,哪个是HEAD?

git - 使用 git 将多个更改分解为单独的提交?

excel - VBA Excel将动态范围从两张纸合并为一张,1004粘贴错误