从前,我的项目中有一个文件,现在我想找回它。
问题是:我不知道我什么时候删除了它,也不知道它的路径在哪里。
当这个文件存在时,我该如何定位它的提交记录呢?
问题是:我不知道我什么时候删除了它,也不知道它的路径在哪里。
当这个文件存在时,我该如何定位它的提交记录呢?
我曾经遇到过这种情况,甚至不知道文件的名称,所以我想查看所有已删除的文件...
总的来说,我强烈建议熟悉git-filter-repo。它有许多用途来重写历史记录,但其中一个分析功能包括非常快速地识别存储库中所有已删除的文件,并显示它们的大小和删除日期。(在非Windows操作系统上使用它相当直接, 这里有专门针对Windows的安装说明。)
一旦您在路径中运行它,您只需运行:
git filter-repo --analyze
这将在您的.git文件夹中输出一些文件,而您想查看的文件是:
.git\filter-repo\analysis\path-deleted-sizes.txt
此文件显示您的存储库中所有已删除文件,按大小反向排序,并显示删除日期。以下是示例输出:
=== Deleted paths by reverse accumulated size ===
Format: unpacked size, packed size, date deleted, path name(s)
57151421 44898377 2022-07-22 somdirectory/somefileA
46034619 42929136 2022-01-18 somdirectory/somefileB
65332368 29102439 2020-09-28 somdirectory/somefileC
23686432 21681498 2022-07-22 somdirectory/somefileD
23681272 21678818 2022-07-22 somdirectory/somefileE
23676153 21670502 2022-07-22 somdirectory/somefileF
43232768 21439037 2020-07-10 somdirectory/somefileG
18714315 14299243 2019-01-10 somdirectory/somefileH
16788104 13035176 2019-01-10 somdirectory/somefileI
显然,您可以使用此功能找到您要查找的文件,或者在重写历史的情况下,基于第二列的大小,我知道如果我从历史记录中删除这9个已删除的文件,我将恢复约220 MB。
一旦您确定了要查找的文件,您可以使用此功能查找提交:
git log --all --full-history -- <filename>