文档
推荐给好友,福利领不停!好友同步开通最高 1000 万词元额度 · 后续消费分佣最高 30%。
+50万 Token生成链接

Git 工作流

CrabCode 内置的 git 命令组:看 diff、切分支、智能生成 commit message、一键 push + 开 PR、在终端看 PR 评论。

是什么

CrabCode 把日常 git 操作做成了一组 slash 命令。背后调的是你本机的 gitgh(GitHub CLI),但 commit message、PR 标题、PR 描述都由 CrabCode 基于当前 diff 自动起草——比手写省一截,且会跟上仓库已有的提交风格。

所有命令都遵循统一的 git 安全规则:不动 git config、不破坏性操作(push --force / reset --hard 等)除非你明确要求、不跳过 hooks、不提交看起来像密钥的文件。

命令一览

命令干什么
/diff看未提交变更与每轮 diff
/branch [name]在当前会话位置创建一条分支
/commit起草 commit message 并创建一次 commit
/commit-push-prcommit + push + 开 PR(或更新已有 PR)
/pr-comments在终端查看 GitHub PR 的评论
/install-github-app给仓库装 CrabCode 的 GitHub Actions 集成

/diff —— 看待改文件

显示当前工作区相对 HEAD 的未提交改动,以及最近几轮里 CrabCode 自己改过的文件 diff。用来在 commit 前过一遍"我(和它)到底改了啥"。

/branch [name] —— 切分支

在当前会话位置开一条新分支。不带参数会让 CrabCode 起一个名字(基于最近的话题);/branch feature/x 直接指定。会话上下文跟随分支保留——切回去还能接着聊。

/commit —— 智能 commit

CrabCode 会自己跑 git status / git diff HEAD / git log --oneline -10,分析改动性质(新功能、修复、重构、文档……),照仓库现有的 commit 风格起草一条 1–2 句的 message(聚焦 为什么 而非 改了什么),然后用 heredoc 语法创建 commit。

只允许这三个 git 子命令:git add / git status / git commit。不会动 push。

如果工作区没有任何改动,不会创建空 commit。

/commit-push-pr —— 一键工作流

一气呵成:

  1. 如果当前在主分支(默认分支自动探测),先创建一条 username/topic 形式的新分支
  2. 创建 commit(同 /commit 规则)
  3. git push -u origin <branch>
  4. gh pr create 开 PR;标题短(< 70 字符),细节写进 body;body 用统一模板(Summary + Test plan)
  5. 如果同分支已有 PR,自动改成 gh pr edit 更新标题和正文

PR URL 会在最后回显。

允许的命令面比 /commit 大:git checkout -b / git push / gh pr create / gh pr edit / gh pr view / gh pr merge。其它不在白名单的命令仍会走权限询问。

/pr-comments —— 在终端看 PR 评论

跑在你当前仓库的 PR 上(自动探测 gh pr view 拿 PR 号),把 PR 级评论和代码 review 评论都拉下来,按 @作者 文件名:行号 → diff hunk → 评论文本 → 回复 的格式打印。代码引用的 diff_hunk 会原样保留,方便对照。

适合在 /review/ultrareview(详见 代码审查)跑完后,把审查者留的 comment 拉进会话上下文继续讨论。

/install-github-app

把 CrabCode 的 GitHub App 装到当前仓库或组织里,开通 PR 自动评论、CI 触发审查等能力。需要仓库管理员权限;走交互式 OAuth。

配置:commit attribution

CrabCode 默认会在 commit message 和 PR 描述末尾追加一段署名(说明这次提交是 CrabCode 协作产生的)。改这段文字走 settings.json

json
{
  "attribution": {
    "commit": "Co-Authored-By: CrabCode <crabcode@acosmi.com>",
    "pr": "Generated with CrabCode"
  }
}
{
  "attribution": {
    "commit": "Co-Authored-By: CrabCode <crabcode@acosmi.com>",
    "pr": "Generated with CrabCode"
  }
}
  • attribution.commit —— commit message 尾的署名行;置空字符串 "" 就完全关掉
  • attribution.pr —— PR 描述尾的署名行;同上
  • 任一字段不设 → 用 CrabCode 的内置默认值

旧字段 includeCoAuthoredBy: false 仍兼容(整体关闭署名),但已废弃,建议用 attribution 取代。

配置:跳过 git 工作流指令

json
{ "includeGitInstructions": false }
{ "includeGitInstructions": false }

关掉后,CrabCode 的系统提示里就不再自动注入 commit / PR 模板。适合你想用别的 commit 风格、或在 CRABCODE.md 里写了自定义流程。

和 Hooks 的呼应

/commit-push-pr 在跑到 git push 那一步时,会经过 PreToolUse(Bash(git push:*)) hook。你可以在 hook 里:

  • 拒绝推到 main / master(返 decision: block
  • 强制本地先跑测试再放行
  • 把 push 事件转发到内部审计系统

详见 Hooks

Worktree 与署名

如果你大量用 git worktree 做并行任务,注意 commit 是按工作树独立的;CrabCode 的署名字段(attribution.commit)是全局 settings.json 字段,不区分 worktree。

相关

  • HooksPreToolUse 拦截 push
  • CrabCode Web/ultrareview 走云端深度评审
  • 代码审查/review / /ultrareview / /security-review
  • Settingsattribution / includeGitInstructions 字段