在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。

链接地址: http://www.djcxy.com/p/36243.html

上一篇: Undo delete in GIT

下一篇: What is the HEAD in git?