SuperAPI AI 工具集

gh-search-commits

编程与开发

查看项目

更新于 10-15 08:08

技能介绍

用途

gh-search-commits 用于在 GitHub 上跨仓库搜索提交(commit)。它基于 GitHub CLI 的 gh search commits 命令,帮助用户按作者、提交者、日期、哈希等条件定位提交记录,并支持在特定仓库、组织或可见性范围内搜索提交信息中的关键词。

主要能力

  • 按作者过滤:--author、--author-name、--author-email、--author-date
  • 按提交者过滤:--committer、--committer-name、--committer-email、--committer-date
  • 按提交属性过滤:--hash、--parent、--tree、--merge
  • 按仓库范围过滤:--owner、-R/--repo、--visibility
  • 输出与排序:-L/--limit(默认 30)、--sort(author-date 或 committer-date)、--order(asc 或 desc)、--json、-w/--web
  • JSON 输出字段:author、commit、committer、id、parents、repository、sha、url

使用方式

基本语法:

gh search commits [<query>] [flags]

正向过滤可使用标志语法,例如:

gh search commits "bug fix" --author octocat --repo cli/cli

涉及排除(否定)或复杂布尔逻辑时,必须使用查询语法并加上 -- 分隔符,例如:

gh search commits -- "deploy -author:dependabot -author:renovate"

关键规则:

  • 排除结果必须使用 -- 分隔符,采用 -qualifier:value 格式,并整体加引号。
  • 不要在同一条命令中混用标志语法与查询语法。
  • 日期使用 ISO8601 格式(YYYY-MM-DD)并配合比较运算符:>、>=、<、<=、..(范围)。日期比较需要加引号。
  • PowerShell 下排除查询需使用 --% 防止解析,例如:gh --% search commits -- "fix -author:dependabot"。

常见示例:

  • 按作者查找:gh search commits --author octocat --repo cli/cli
  • 搜索提交信息:gh search commits "security fix" --repo myorg/myrepo
  • 日期范围:gh search commits "refactor" --author-date "2024-01-01..2024-12-31"
  • 查找合并提交:gh search commits --merge --repo owner/repo
  • 排除机器人提交:gh search commits -- "deployment -author:dependabot"
  • 按哈希搜索:gh search commits --hash 8dd03144
  • 按邮箱查找:gh search commits --author-email user@example.com

适用场景

  • 跨仓库或组织查找某作者或提交者的提交
  • 按关键词搜索提交信息
  • 在特定仓库中按日期或哈希筛选提交
  • 查找组织内的合并提交
  • 排除机器人、特定作者或特定日期范围的提交

限制与注意事项

  • 标志语法不支持否定,排除必须改用查询语法。
  • NOT 关键字无效,应使用 - 前缀。
  • --author 不接受 @ 前缀。
  • 日期比较不加引号可能被 shell 解释。
  • 使用前需安装 GitHub CLI;若未认证需执行 gh auth login。
  • 安装地址:https://cli.github.com/manual/installation
  • 相关 GitHub 搜索语法文档:https://docs.github.com/search-github/searching-on-github/searching-commits