在GIT中撤消删除
我做了一件非常愚蠢的事情。 我使用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>
,你应该全部设置。
如果我正确地理解了你,你重写了提交C.所以最初的提交,我们称之为C1,不能从你的提交图中访问,但它仍然存在(git保留所有提交一段时间)。 使用git reflog
来获取提交哈希和git checkout <hash>
或其他适当的命令以获得旧状态C1。
上一篇: Undo delete in GIT