如何搜索项目的所有Git分支中的文件名?
我只记得文件名的一部分(仅限结尾),所以我想要搜索类似于*_robot.php
这样的内容,跨越所有分支,并查看哪些文件与之匹配。我希望它能够搜索历史记录,而不仅仅是分支的HEAD。
这是一种方法:
git log --all --name-only --pretty=format: | sort -u | grep _robot.php
--all
),打印它们修改过的文件名(--name-only
),以及仅这些文件名(--pretty=format:
)。--
分隔符之后放置文件名正则表达式来筛选某些文件名(正则表达式)。git log --all --name-only --pretty=format: -- <file_name_regexp> | sort -u
git log --all --name-only --pretty=format: -- _robot.php | sort -u
git log --all --name-only --pretty=format:%H -- <file_name_regexp> | less
,然后通过键入斜杠(/
)来查找您感兴趣的文件名:修改的文件名在它们的修订哈希之前。(然后您可以进行通常的git checkout <revision>
以查看该文件。) - Eric O. Lebigotgit log --all --name-only --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' -- '**/blob*' | less
- ptim