我有一个糟糕的推送提交 如何撤消此提交,并返回到我的工作树(之前)?
这将引导我进入正确的工作树:
git checkout HEAD~1
这将导致我正确提交,但工作树仍然是相同的不必要的文件:
git revert HEAD~1
如何完全回滚到之前的提交?
我的意思是,我不应该对脱离的HEAD做出承诺,对吧? (如果是git checkout <commit>
)
答案 0 :(得分:1)
根据this answer,git revert HEAD
是您应该使用的;但是,如果恢复的提交添加了任何文件或文件夹,它们将作为未跟踪文件保留在工作副本中。要摆脱它们,请运行 git clean
(如this answer中所述)。
更新:在本地测试后,我将所需命令编辑为git revert HEAD
。不应该运行git clean
。正如链接的答案所解释的那样,git revert
提交反向合并&#39;传递给它的提交,如果HEAD~1
是你想要的最终结果,你应该将HEAD
传递给git revert
。
答案 1 :(得分:1)
如果要完全回滚到上一次提交并从历史记录中删除错误提交。
git reset --hard HEAD~1