# 查找当前工作目录(当前版本)
$ git grep -n gmtime_r
# -n 匹配的行号
$ git grep --count gmtime_r
# --count 只输出文件中匹配的数量, 不显示其它信息了
$ git grep -p gmtime_r *.c
# -p, 显示匹配的行是属于哪个函数的
$ git grep --break --heading \\
-n -e '#define' --and \\( -e LINK -e BUF_MAX \\) v1.8.0
# \\, 使得命令可以换行, 又是转义字符, 但是在cmder 中不支持 QAQ
# --break --heading, 让输出更易读
# --and 标志来查看复杂的字符串组合,也就是在同一行同时包含多个匹配
# v1.8.0 标签名, 在旧版本中查找
#git grep 与linux 的grep 和 ack, 优势:
# 速度非常快
# 不仅仅可以可以搜索工作目录,还可以搜索旧的版本
# 搜索, 内容是在什么时候加入的
$ git log -SZLIB_BUF_MAX --oneline
# -S 显示后面跟的字符串的新增和删除的时间
# 显示函数从创建到现在所有的变化
$ git log -L :funName:fileName.js
# -L 显示代码中的一行或一个函数的所有历史记录
$ git log -L '/unsigned long git_deflate_bound/',/^}/:zlib.c
# 可以使用正则帮助Git 正确的计算出函数的范围