我执行了 git commit --amend
。
我做了一些更改,但想放弃它们,所以我随后执行了 git reset --hard HEAD
,认为它会回到我修改的点。好像又回到了最初提交的那个点。
这里有很多关于撤消 git reset --hard HEAD
的答案,但没有一个专门处理在这种情况下撤消 reset
(使用 amend
涉及),我只是想确保在继续之前我应该遵循相同的模式。
这似乎是最受欢迎的答案: How can I undo git reset --hard HEAD~1?
编辑
你知道吗,我意识到我今天做了几个 --amend
而没有先执行 git add .
。多么糟糕的一天。如果我没有 git add .
,有什么方法可以恢复工作吗?
最佳答案
如果 git commit --amend
涉及任何内容修改 (git add),那么 git reset --hard
将按预期工作。
但是 git commit --amend
没有任何修改只会修改提交日期(因此更改/SHA1 提交 SHA1)
如果添加了这些更改,this answer表明 git fsck
应该能够向您展示这些变化。
一个更完整的命令(在 this answer 中)是:
git fsck --cache --no-reflogs --lost-found --unreachable HEAD
更多信息在“Recovering added file after doing git reset --hard HEAD^
”。
关于git - "git reset --hard HEAD"之后的 "git commit --amend",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24300416/