我做了一些非常愚蠢的事情。
我使用 git commit(文件编辑 + 新文件)(C) 进行了提交。
然后我修改了最后一次提交。
然后我使用 git rm -r
递归地(!)删除了所有文件
然后我做了另一个 git commit (C)。
A-B-C ↑ master
有什么方法可以取消删除文件但保留我在第一次提交时所做的更改? (C) 我宁愿不回到(B)。 我尝试了 git reset --soft head^,然后 git status 列出了我删除的文件,然后我做了 git checkout,但仍然没有成功。我什至不知道这是否可能。
最佳答案
帮自己一个忙,不要做git checkout <hash>
就像其他答案所暗示的那样,并解决更多问题。
如果您已从工作目录中删除了文件并且尚未提交更改,请执行以下操作:
git checkout -f
注意:在执行此命令之前提交未提交的文件,否则您将丢失所有文件
删除的文件应该会再次出现。
如果没有,并且您可以从 git reflog
中找到您想要的提交(C 等 - 您的问题不清楚) , 就做 git reset --hard <hash from reflog>
你应该一切就绪。
关于git - 在 GIT 中撤消删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9477702/