git - 避免添加空合并
问题描述
我有一个项目,它也是一个 NuGet 包。因此,它存在于 2 个分支上:master
用于发布新的官方版本,以及development
用于实际开发的地方。当我们想要发布一个新版本时,我们只需将提交从 合并development
到master
。
我们的包发布过程包括(并要求)标记提交。现在,问题是:过去当我们从development
to合并时master
,git 历史记录master
将只包含 from 的提交development
,没有合并提交(因此它总是将n
提交添加到历史记录中)。然而,在某个时候,团队中的某个人开始对这个存储库中的分支做一些奇怪的事情,现在每当我们合并到master
,在顶部添加一个空的合并提交(因此它会导致n+1
提交添加到master
历史记录中)。它不包含任何更改的文件,它就在那里。这有点烦人,但这里真正的问题是,现在包标签最终出现在合并提交上,这是我们不想要的。
问题是:如何解决这个问题,以便每次分支合并到master
分支时我们不再获得这些空的合并提交?
解决方案
您要做的是执行快进合并。只有在development
分支上的所有更改都是在 master
. 在这种情况下,如果使用 调用,git merge
分支指针将直接设置为 的最新提交。--ff-only
master
development
有关ff 和非 ff 合并的详细信息,请参阅此问题和链接问题。
与此相反的是--no-ff
参数,即使没有必要,它也会强制合并提交。
请注意,如果您使用 GitLab、GitHub 或类似的东西,可能会有一些设置来调整是否强制执行合并提交。
推荐阅读
- angular - Angular 更新不相关的 DOM 元素
- php - Laravel 中间件身份验证在生产中抛出 500 但不在本地
- php - 使用 PHP 将 Base64 图像字符串转换为图像文件
- python - reader.decrypt(word) NotImplementedError: 仅支持算法代码 1 和 2
- asp.net - Bootstrap Select 格式不正确
- json - json序列化忽略kotlin字段注释
- javascript - 将值从子组件传递到父组件时无法读取“目标”属性
- php - 如何在 laravel bootstrap.js 文件中添加 php 代码
- azure - 从 Xamarin 表单访问 Azure KeyVault
- sql - 如何在流分析查询中连接查询的所有结果?