【问题标题】:Undo git Auto-merge撤消 git 自动合并
【发布时间】:2019-08-29 21:09:07
【问题描述】:

切换分支后,我应用了 stash(如下所示),这导致了自动合并。

  git stash apply

Auto-merging src/clojure/project_src.clj
On branch upgrade_project
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

modified:   src/clojure/project_src.clj

no changes added to commit (use "git add" and/or "git commit -a")

我尝试了git revert HEAD,它恢复了提交(不是自动合并)。如何恢复自动合并?

【问题讨论】:

    标签: git git-merge git-stash git-revert


    【解决方案1】:

    要中止合并,您可以这样做

    git merge --abort
    

    但是现在您恢复了上一次提交,除非您已经将该失败状态推送到远程,否则我建议您重置到您在第一次错误存储之前的位置:

    git reset --hard HEAD^
    

    此时您可以重试stash apply 并以不同方式合并它,或者只是不应用存储,但无论如何您都会回到原点。

    【讨论】:

    • 感谢您的回答! @RomainValeri
    【解决方案2】:

    我做了以下,效果很好。

    首先,我对恢复我上次提交的提交进行了 git revert。这让我回到了 git stash apply 导致的自动合并。

    然后,我申请了git reset --merge upgrade_project,它恢复了自动合并。

    编辑:我还了解到 git merge --abortgit reset --merge 对于正在进行的合并工作相似。

    【讨论】:

      猜你喜欢
      • 2016-02-04
      • 2016-06-02
      • 2013-06-07
      • 2013-09-12
      • 2020-08-23
      • 2011-08-22
      • 2021-06-26
      • 2014-09-23
      • 2011-01-24
      相关资源
      最近更新 更多