AI在线 AI在线

Claude Code现在能全自动推送代码了,立刻删掉你的commit脚本!

第一章:功能概述

• 核心功能:通过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)

相关资讯