【问题标题】:Move (or "Undo") last git commit to unstaged area [duplicate]将最后一个 git 提交移动(或“撤消”)到未暂存区域 [重复]
【发布时间】:2012-06-06 11:51:10
【问题描述】:

将最后一次 git 提交移回“未暂存的更改”+“未跟踪的文件”区域的最佳方法是什么(有问题的提交未推送/仅在您的本地存储库中,有效地将其从 HEAD 中删除) ?

换句话说,您如何回滚提交,但自动将该差异应用到您的未暂存区域?

【问题讨论】:

    标签: git


    【解决方案1】:

    您可以使用git reset 将当前分支设置为之前的提交,即HEAD^

    git reset HEAD^
    

    添加--soft 会将这些文件保留在索引中:(准备好提交)

    git reset --soft HEAD^
    

    --soft

    (...) 这会留下所有更改的文件“要提交的更改”,就像 git status 所说的那样。

    【讨论】:

    • @Dr_Zaszuś,here we go(老实说,我更喜欢原帖中的图片 ;-))。
    • @Dr_Zaszuś,the original 由 Internet Wayback Machine 提供。
    【解决方案2】:

    git-extras 提供了一个git undo 命令,这是一种更容易记住的做同样事情的方法(以及许多其他方便的附加功能,顾名思义)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-22
      • 1970-01-01
      • 2011-11-05
      • 2011-10-01
      • 2014-04-16
      • 2017-08-06
      • 2013-05-25
      • 2013-06-10
      相关资源
      最近更新 更多