git 合并到一个没有变化的分支并提交

git merge to a branch without changes and commit

假设我有两个分支,masterfeature_new。如果 masterfeature_new 相对于它们分支出来的时候都有不同的提交,当我做 a

git checkout master
git merge feature_new

我将收到带有提交消息 Merge branch feature_new 的 "merge commit"。但是如果 master 上面没有任何变化,我就不会得到这个提交。在这种情况下有没有办法始终进行合并提交?

这让我可以查看分支的历史记录以及从该分支合并的提交。

默认情况下,Git 将尝试快进分支。快进意味着分支可以线性向前移动而不需要实际合并。发生这种情况的最常见情况是当您的 master 已过时并且您从具有更多提交的远程服务器中拉出时。

如果你想强制合并提交,你可以这样做:

git merge feature_new --no-ff

--no-ff 表示“不快进”,并尽可能避免快进。因此,即使没有必要,这也总是会导致合并提交。

引用 manual:

--no-ff

Create a merge commit even when the merge resolves as a fast-forward. This is the default behaviour when merging an annotated (and possibly signed) tag.