首页 > 解决方案 > 如果自上次合并后有新提交,则阻止 git merge

问题描述

只有在目标分支上没有新提交时,是否可以合并两个分支?

假设我们有提交的 master 分支:

1.1.0 -> 1.1.1 -> 1.2.0(新)

和带有提交的开发分支

1.2.0-0 -> 1.2.0-1 -> 1.2.0-2

假设我现在想将 1.2.0-2 合并到 master 以创建一个新的 1.2.0,但如果 master 上的现有提交尚未合并到 dev 中,则会失败。这种合并是自动的,所以我不想要任何冲突或任何意外行为。

例如,假设 master 被合并到 dev 中以生成 1.2.0-0,然后 master 收到一个修补程序 1.1.1。然后最后在 dev 上测试的 1.2.0-2 应该合并到 master,但由于 1.1.1 的存在而发生冲突或出现意外行为。我希望这个过程在这里失败,并强制将 1.1.1 的第一个合并到开发、测试然后合并回来。

我已经扫描了 git 文档,但看不到在这种情况下会阻止合并的命令选项。

一种解决方案是首先检查 master 上的最后一次提交是否存在于 dev 分支中,但理想情况下这只是一个合并命令。

标签: git

解决方案


使用--ff-only选项:

git merge --ff-only dev

我不想要任何冲突或任何意外行为

在这种情况下也不会发生冲突。


推荐阅读