如果您不知道可能使用的确切路径
git log --all --full-history -- **/thefile.*
如果您知道文件所在的路径,则可以执行以下操作:
git log --all --full-history -- <path-to-file>
这应该显示触及该文件的所有分支中的提交列表。然后,您可以找到所需文件的版本,并将其显示为...
git show <SHA> -- <path-to-file>
或者将其恢复到您的工作副本中:
git checkout <SHA>^ -- <path-to-file>
请注意插入符号( ^
),它在标识之前得到结帐,因为在<SHA>
提交时删除文件,我们需要查看上一次提交以获取已删除文件的内容
获取已删除文件的列表并复制已删除文件的完整路径
git log --diff-filter=D --summary | grep delete
执行下一个命令以查找该提交的提交 ID 并复制提交 ID
git log --all -- FILEPATH
显示已删除文件的差异
git show COMMIT_ID -- FILE_PATH
请记住,您可以使用>
like 将输出写入文件
git show COMMIT_ID -- FILE_PATH > deleted.diff
无法编辑已接受的响应,因此在此处将其添加为答案,
要在 git 中恢复文件,请使用以下内容(注意 SHA 之后的 '^' 符号)
git checkout <SHA>^ -- /path/to/file