你如何看待哪个提交从repo中删除了一个文件?

Bal*_*rdi 21 git

由于它不再存在于存储库中,我无法做到

git log <filename>
Run Code Online (Sandbox Code Playgroud)

我可以跑

git log  --diff-filter='D|R' <directory_that_contained_it>
Run Code Online (Sandbox Code Playgroud)

但这是太多的信息和grepping它似乎没有列出我正在寻找的文件.

Gio*_*fas 21

git log -1 --stat -- <path/to/file>
Run Code Online (Sandbox Code Playgroud)

我把它--stat放在那里,以便您可以验证该文件已被删除.

  • @BalintErdi我不确定这是否会在删除文件的哈希ID出现在最后一个接触文件的哈希ID之前的情况下起作用,这在两个分支之间进行合并时是可能的。——所以,这可以解释为什么它不能始终如一地为您工作。 (2认同)

AlB*_*lue 5

git log -- <filename> 
Run Code Online (Sandbox Code Playgroud)

会向您显示对该路径的更改,即使该文件不再存在。

您可以使用将rev-list -n 1其限制为返回的第一个结果,即第一个消失的结果

git rev-list -n 1 HEAD -- <filename>
Run Code Online (Sandbox Code Playgroud)

该修订号是消失的,因此,如果您想用该修订号上的^还原父级,则可以找到该父级。