git 合并到一个没有变化的分支并提交
git merge to a branch without changes and commit
假设我有两个分支,master
和 feature_new
。如果 master
和 feature_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.
假设我有两个分支,master
和 feature_new
。如果 master
和 feature_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.