我试图查找使用某个文件somefile.jsx
的无法访问的提交,比如说。我能这样做吗?或者我可以在其中一个文件中查找包含某些特定内容的内容吗?更深层次的问题我有数百个无法访问的提交,我正在寻找...
答案 0 :(得分:0)
查看git log <filename>
的特定文件的所有更改。
如果您运行git pop
,则会从存储中删除更改并将其移至工作树。然后,如果您添加并提交了更多更改,那么它们将一直包含在提交中。
如果您没有看到git log <filename>
要查找的更改,请确保运行git status
以查看工作目录和暂存区域中的内容。
答案 1 :(得分:0)
git fsck --unreachable --no-progress
以获取包含提交信息的行。grep 'unreachable commit'
。cut -d' ' -f3
以获取提交(第3个字段)。把所有这些放在一起......
git fsck --unreachable --no-progress | grep 'unreachable commit' | cut -d' ' -f3
现在您有一个所有无法访问的提交列表。把它放在一个文件中。
您可以在每个文件上运行git --no-pager log --format=oneline -n1 --stat <commit id>
以查看他们更改的文件。这是一个小小的Perl单行代码。
perl -nwle 'system "git --no-pager log --format=oneline -n1 --stat $_"' <commit file>
你甚至可以用“WIP”来寻找旧的藏匿处。