如何`git merge B --ff`(成功时)和`git reset B --hard`有什么不同?

时间:2014-02-07 14:56:27

标签: git

假设分支B直接位于当前分支之前(以便可以进行快进合并)。

怎么做

git merge B --ff

并且正在做

git reset B --hard

此时有所不同?

1 个答案:

答案 0 :(得分:3)

唯一的区别在于git merge无法快进:

如果您有本地更改:

git merge B --ff失败并显示错误消息:

error: Your local changes to the following files would be overwritten by merge:
(list of files)
Please, commit your changes or stash them before you can merge.
Aborting

git reset B --hard默默地放弃更改。

如果你误解了快进的可能性:

git merge B --ff创建合并提交。

除此之外(并且你说这些情况不适用),它们都以完全相同的方式更新当前分支(或分离的HEAD):与B完全相同的提交。