代码之家  ›  专栏  ›  技术社区  ›  kjo

“git merge B-ff”(成功时)和“git reset B-hard”有何不同?

git
  •  1
  • kjo  · 技术社区  · 12 年前

    假设那个分支 B 位于当前分支的正前方(因此可以进行快速向前合并)。

    怎么做

    git merge B --ff
    

    和做

    git reset B --hard
    

    在这一点上有什么不同?

    1 回复  |  直到 12 年前
        1
  •  3
  •   user743382 user743382    12 年前

    唯一的区别在于: 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合并B--ff 创建合并提交。

    除此之外(您可以说这些情况不适用),它们都以完全相同的方式更新当前分支(或分离的HEAD): B .