首页/开发/Git 与协作速查/git log -S / -G 检索内容变更
Git 基础与命令88 条

git log -S / -G 检索内容变更

按内容检索历史:-S 记录某字符串出现次数的变化(新增或删除),-G 对 diff 文本按正则匹配,用来定位代码或配置何时引入。

Git 与协作速查开发更新于 2026-10-12
用途定位内容引入/移除的提交
-S字符串出现次数变化时命中
-G对补丁文本做正则匹配

常用示例

常用示例
git log -S 'retryLimit' --oneline
git log -G 'func.*Retry' --oneline
git log -S 'timeout' --pickaxe-regex --oneline
git log -S 'TODO' -p -- src/
-S 关心次数变化:纯重命名或格式化不改数量时不命中;-G 更接近对 diff 内容的直接搜索。

易错点

  • 全历史扫描大仓很慢,先加 -- 路径范围或 --since 限定时间
  • -S 的参数默认按字面匹配(可用 --pickaxe-regex 改为正则),误用正则元字符会搜不到

数据来源与参考

  • Git 官方文档:git-log(-S/-G/--pickaxe-regex)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌