跳到正文
claudemods

Claude Code Git 插件:分支、提交与 GitHub

Claude Code Git 插件可显示当前分支与改动、拦截危险 git 命令、调整提交与 PR 文本,并在会话内展示 GitHub 状态。

危险命令拦截 在 Claude Code 中运行

危险命令拦截

在 rm -rf /、强推 main、DROP TABLE、curl | sh 等破坏性 Bash 命令执行前将其拒绝。

  • 弹出通知
  • 拦截工具调用
  • 修改界面

已在 v2.1.291 实测

提示框上方的 Git 分支 在 Claude Code 中运行

提示框上方的 Git 分支

在 Claude Code 输入框上方用一行横条显示当前 git 分支、已修改文件数和领先/落后状态。

  • 输入框上方
  • 执行命令
  • 拦截工具调用
  • 修改界面

已在 v2.1.291 实测

Claude Code Git 插件让你在 Claude 修改代码时始终能看清版本控制状态,也让操作更安全一些。它们会显示当前分支和已改动的文件数量,在强制推送到 main 之前发出警告,改写提交署名文本,或者展示来自 GitHub 的拉取请求与 CI 状态。

Claude Code Git 插件挂接了哪些事件?

展示类插件通过 $.process.run(['git', 'status', '--porcelain=v1', '-b'], { cwd }) 读取仓库,用 $.session.cwd() 确定所在目录,再把结果绘制到 AbovePrompt 横栏或状态栏中。它们会在 session.start、turn.complete 时刷新,并在命令中包含 git 的 Bash 工具 tool.call 之后立即刷新,这样 Claude 执行的切换分支操作会马上显示出来。一个较慢的 $.clock.every 定时器则负责捕捉你在其他终端里做的改动。

防护类插件使用同一个 tool.call 钩子来拒绝 git push --force origin main 或 git clean -fdx 这样的命令。改变提交和 PR 署名方式的插件会处理 attribution.text。能感知 GitHub 的插件会运行 gh,或用 $.http.fetch 调用 GitHub API。完整的事件列表见 mods 参考文档。

安装前应该检查什么?

几乎每个 Git 插件都会带有 执行命令 标记,关键在于它执行的是哪些命令。展示类插件应当只运行 git status、git rev-parse 或 git log 这类只读命令,设置超时,并且不使用 shell 字符串。如果插件显示 网络访问,请弄清它访问的是哪个主机、是否需要令牌;放在 userConfig 中的 GitHub 令牌应当标记为敏感信息。

在非常大的仓库中,git status 可能需要明显的一点时间。优先选择基于事件刷新、并允许你在 /config 中调长定时器间隔的插件。

Git 插件与 Claude 自身的 git 操作有什么不同?

Claude 本来就会通过 Bash 工具替你运行 git。Git 插件并不取代这一点;它们无需你开口就把结果展示给你,并对 Claude 可以运行的命令加以限制。一条分支横栏加上一个强制推送防护,就能覆盖两种最常见的意外:在错误的分支上提交,以及改写了共享的历史记录。

常见问题

Claude Code Git 插件需要 GitHub CLI 吗?
只有需要和 GitHub 通信时才需要。分支指示器只依赖 git。读取拉取请求或 CI 状态的插件通常会通过 $.process.run 运行 gh,或用 $.http.fetch 调用 GitHub API,插件页面应当写明用的是哪一种。
Git 插件会修改我的仓库吗?
只有当它运行 git commit、git checkout 这类会写入的命令时才会。请阅读“工作原理”一节。仅用于展示的插件应该只运行 git status 这样的只读命令。
为什么 Git 插件在某些文件夹里什么都不显示?
在 git 仓库之外,一个设计良好的 Git 插件会自动隐藏,而不是打印错误。请在仓库目录内启动 Claude Code,或在启动前先 cd 进入仓库。