在GIT中撤销删除
我做了一件非常愚蠢的事情。 我使用git commit(文件编辑+新文件)(C)做了一个提交。 然后我做了最后的修改。 然后我使用git rm -r
recursion删除所有文件(!)然后我做了另一个git commit(C)。
ABC ↑ 主
有没有什么方法来取消删除文件,但保持我在第一次提交的变化? (C)我宁愿不回(B)。 我试过git reset –soft head ^,所以然后git status列出了我删除的文件,然后我做了git checkout,但还是没有运气。 我甚至不知道是否有可能。
帮你一个忙,不要做像其他答案build议的git checkout <hash>
,并进入更多的问题。
如果您从工作目录中删除了文件,但尚未提交更改,请执行以下操作:
git checkout -f
小心:在执行此命令之前提交未提交的文件,否则您将丢失所有文件
被删除的文件应该回来了。
如果不是,如果你可以从git reflog
find你想要的提交(C等,你的问题不清楚),只要做git reset --hard <hash from reflog>
,你应该全部设置。
如果我正确地理解了你,你重写了提交C.所以原来的提交,我们称之为C1不能从你的提交图中访问,但它仍然存在(git保留所有提交一段时间)。 使用git reflog
来获取提交哈希和git checkout <hash>
或其他适当的命令来达到旧的状态C1。