第一章:功能概述
• 核心功能:通过Claude Code的Stop钩子实现自动Git提交与推送
• 触发时机:每次Claude Code完成代码任务响应时自动执行
• 操作流程:
检查Git仓库变更
暂存所有更改
创建包含会话ID和时间戳的描述性提交
推送至远程仓库
显示提交状态通知
第二章:配置步骤
Step 1:创建钩子脚本
• 脚本路径:~/.claude/hooks/auto-commit-after-task.sh
复制• 核心逻辑:
解析JSON输入获取会话ID(jq依赖必需)
非Git仓库自动跳过
无变更时跳过提交
生成包含5个文件变更摘要的提交信息(含会话ID/时间戳/文件数)
提交失败时返回警告,推送失败时提示权限问题
Step 2:设置脚本权限
• 执行命令:chmod +x ~/.claude/hooks/auto-commit-after-task.sh
Step 3:配置Claude设置
• 修改~/.claude/settings.json:
复制• 关键提示:必须替换YOUR_USERNAME为实际用户名
Step 4:重启生效
• 重启Claude Code后钩子将在新会话激活
第三章:提交示例
• 提交信息格式:
复制第四章:定制选项
仅提交不推送
• 删除脚本中的推送代码段
复制替换为:
复制自定义提交信息
• 直接修改脚本中的COMMIT_MSG变量格式
临时禁用钩子
• 在settings.json中添加:
复制第五章:其他钩子事件
• 支持的事件类型:
Stop(本文使用)
SessionEnd(会话结束时触发)
PreToolUse/PostToolUse(工具调用前后)
UserPromptSubmit(用户提交提示时)
• 文档参考:https://docs.claude.com/en/docs/claude-code/hooks
第六章:故障排查
钩子未运行
• 执行权限检查:ls -la ~/.claude/hooks/auto-commit-after-task.sh
• 依赖验证:安装jq(Linux: sudo apt install jq / Mac: brew install jq)
• 配置校验:使用JSON验证器检查settings.json语法
提交成功但推送失败
• 检查远程仓库配置:git remote -v
• 验证推送权限及SSH密钥/凭证
查看运行日志
• 在Claude Code输出中检查提示消息(如✅ Auto-committed and pushed changes)