首页 > 解决方案 > 避免添加空合并

问题描述

我有一个项目,它也是一个 NuGet 包。因此,它存在于 2 个分支上:master用于发布新的官方版本,以及development用于实际开发的地方。当我们想要发布一个新版本时,我们只需将提交从 合并developmentmaster
我们的包发布过程包括(并要求)标记提交。现在,问题是:过去当我们从developmentto合并时master,git 历史记录master将只包含 from 的提交development,没有合并提交(因此它总是将n提交添加到历史记录中)。然而,在某个时候,团队中的某个人开始对这个存储库中的分支做一些奇怪的事情,现在每当我们合并到master,在顶部添加一个空的合并提交(因此它会导致n+1提交添加到master历史记录中)。它不包含任何更改的文件,它就在那里。这有点烦人,但这里真正的问题是,现在包标签最终出现在合并提交上,这是我们不想要的。
问题是:如何解决这个问题,以便每次分支合并到master分支时我们不再获得这些空的合并提交?

标签: gitmerge

解决方案


您要做的是执行快进合并。只有在development分支上的所有更改都是在 master. 在这种情况下,如果使用 调用,git merge分支指针将直接设置为 的最新提交。--ff-onlymasterdevelopment

有关ff 和非 ff 合并的详细信息,请参阅此问题和链接问题。

与此相反的是--no-ff参数,即使没有必要,它也会强制合并提交。

请注意,如果您使用 GitLab、GitHub 或类似的东西,可能会有一些设置来调整是否强制执行合并提交。


推荐阅读