Git 工具 - 搜索
经常需要查找一个函数是在哪里调用或者定义的,或者一个方法的变更历史。Git 提供了两个有用的工具来快速地从它的数据库中浏览代码和提交。
Git Grep
Git 的grep
命令可以让我很方便地从提交历史或者工作目录中查找一个字符串或者正则表达式。默认情况下,Git 会查找工作目录的文件。可以用-n
来输出所找到的匹配行行号。
$ git grep -n getTabStr
src/filters.js:22:exports.getTabStr = (tab, good, top) => {
src/views/list.vue:17: :title='item.tab | getTabStr item.good item.top'>
src/views/topic.vue:29: {{topic.tab | getTabStr topic.good topic.top}}
此外,git grep
命令还可以通过指定提交在旧版本的源代码中查找,用--count
选项可以输出概述信息,仅仅包括哪些文件包含匹配,并列出每个文件包含匹配的个数。更多的用法参考git_grep
Git 日志搜索
有时候你不想知道某个关键词是在哪里出现的,而是想知道什么时候出现的。git log
可以做到这一点。
比如,我想找到常量ZLIB_BUF_MAX
是什么时候引入的,可以用-S
选项来显示新增和删除该字符串的提交。
$ git log -SZLIB_BUF_MAX --oneline
e01503b zlib: allow feeding more than 4GB in one go
ef49a7a zlib: zlib can only process 4GB at a time