首页 > 解决方案 > Git revert 无法恢复已删除的文件

问题描述

我有一系列提交

A --> B --> A'

提交B中的更改将执行git rm myfile并添加myfile.gitignore. 然后我将提交推B送到远程。但是我意识到我忘记添加--cached选项了git rm,所以myfile实际上是从我的本地存储库中删除的,而我只是想停止跟踪它并从远程删除它。

为了解决这个问题,我做了 commit A',这不过是一个git revert HEAD~,恢复到A. 它成功恢复到A. 但myfile没有再出现。

如果我这样做,git ls-tree A那么myfile就在那里,但如果我这样做,git ls-tree A'那么myfile就不在那里。到底是怎么回事?

标签: gitgithub

解决方案


如果您只想myfile从提交中获取文件A到磁盘:

git show A:myfile > myfile

# or :
git restore --worktree -s A -- myfile

推荐阅读