我知道关于这个话题有很多类似的问题,所以如果这是重复,我会道歉。但是,我认为这个案例与我见过的其他案例相比是独一无二的。
我的repo目录中有一些本地文件,我没有意识到这些文件未被跟踪。然后我创建了一个新的本地分支,对目录结构进行了重大更改,并对整个目录进行了git add并提交了(这是我认为提交重组的最方便的方法)。
我后来改变了我对重组的看法,所以我删除了整个分支而没有合并它,但遗憾的是删除了所有以前未跟踪的文件,这些文件并没有出现在任何其他分支中。
我能够从已删除的分支中找到提交并将其检出,但删除的文件无处可寻。我也尝试过使用:
git log -- <filepath>
不幸的是,它也没有显示任何内容。删除分支时,这些文件肯定被删除,所以它们必须在某些时候被git跟踪,但我找不到任何东西。
答案 0 :(得分:0)
如果文件是真正提交的,并且您的reflog未被删除(默认情况下为30天),您应该能够看到哪些提交对一组特定文件或目录的影响如下:
git reflog -- path/to/some/file.txt
git reflog -- path/to/some/file.txt path/to/another/file.txt
git reflog -- path/to/some/directory
git reflog -- */some.file
如果它没有显示,则表示它从未被添加到提交中。
如果它可能被隐藏,那么以下命令可以提供帮助:
git stash list -- path/to/some/file.txt