ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

硬核榨干 Claude Code 的 8 个技巧:从 CLAUDE.md 到 Git 工作流

硬核榨干 Claude Code 的 8 个技巧:从 CLAUDE.md 到 Git 工作流 1. 为什么你的 Claude Code 总是“差口气”很多人第一次用 Claude Code感觉就像雇了个记忆力只有七秒的实习生刚跟它讲完项目用 pnpm 不用 npm转头它又给你敲了个npm install明明约定好了分支命名规范它提交时还是随手写个fix。问题不在模型笨而在于你没给它一套稳定的“工作记忆”和“操作边界”。Claude Code 是 Anthropic 推出的命令行编程代理能直接读写你本地的代码库、执行 shell 命令、操作 Git。它适合谁适合已经在用终端开发、想让 AI 真正参与日常提交与重构的工程师。它的能力上限很大程度上取决于两样东西CLAUDE.md 里写了什么以及你允许它碰哪些命令。这篇不聊虚的直接交付三样能复制的东西一份可落地的 CLAUDE.md 骨架、一段 settings.json 权限配置、一套用 Git 钩子验证 AI 改动是否合规的步骤。顺带把 Claude Sonnet 4 和 Claude Opus 的选型讲清楚让你既跑得动又花得值。如果你本地还没配好可用的模型通道可以先用 TaoToken 的模型对话 把提示词调顺再落到 CLI 里跑。2. 前置把模型通道和 Key 准备好Claude Code 本身是个客户端它需要一个能响应 Anthropic 接口的通道。我试过最省事的做法是在 TaoToken 控制台生成一个 API Key然后把它写进环境变量而不是硬编码在任何配置文件里。第一步进 TaoToken 控制台 创建 Key。第二步去 API Keys 管理页 复制那串以sk-开头的字符串。第三步在 shell 里导出export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENsk-你的Key注意ANTHROPIC_BASE_URL不要带任何路径后缀Claude Code 会自己拼接/v1/messages。写错了会直接 404这个坑我踩过。如果你用的是 zsh把这两行追加到~/.zshrcbash 用户写进~/.bashrc。写完执行source ~/.zshrc让它生效。验证通道是否通最直接的办法是发一条最小请求curl -s $ANTHROPIC_BASE_URL/v1/messages \ -H x-api-key: $ANTHROPIC_AUTH_TOKEN \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: claude-sonnet-4-20250514, max_tokens: 64, messages: [{role:user,content:只回复两个字通了}] }返回体里出现content字段且文本是“通了”说明通道没问题。这一步别跳过后面所有技巧都建立在这条链路能跑通的基础上。接入细节可以对照 TaoToken 接入文档 里的参数说明核对。3. CLAUDE.md 骨架给项目装上长期记忆CLAUDE.md 是 Claude Code 每次启动时自动读取的上下文文件。放在项目根目录它管这个项目放在~/.claude/CLAUDE.md它管你所有项目。我的建议是项目级写具体规范用户级写个人偏好。下面这份骨架可以直接抄改掉方括号里的内容即可# 项目约定 ## 技术栈 - 包管理器pnpm禁止使用 npm / yarn - 语言TypeScript 5.xstrict 模式开启 - 测试vitest测试文件与源码同目录命名 *.test.ts ## 目录结构 - src/components 纯展示组件不含业务逻辑 - src/features 按业务域划分每个域自带 hooks 与 api - src/lib 无副作用的工具函数 ## 代码规范 - 禁止 any必要时用 unknown 类型守卫 - 提交信息遵循 Conventional Commitsfeat/fix/refactor/chore - 单文件不超过 300 行超出请拆分 ## 常用命令 - 安装依赖pnpm i - 跑测试pnpm test - 类型检查pnpm tsc --noEmit ## 禁止事项 - 不要修改 .env 与任何密钥文件 - 不要执行 git push推送由人工确认 - 不要删除 migrations 目录下的历史文件这份文件的价值在于“约束”。Claude Code 默认会猜你的意图猜错就乱来写清楚之后它执行pnpm test而不是npm test的概率会大幅上升。用户级的~/.claude/CLAUDE.md可以写更个人的东西比如“回答用中文”“解释代码时先给结论”。想让记忆更细可以在子目录再放一个 CLAUDE.mdClaude Code 会按当前工作目录向上查找并合并。这个机制适合 monorepo根目录写全局规范packages/web/CLAUDE.md写前端专属约定。4. settings.json把权限和模型选择钉死Claude Code 的配置文件在~/.claude/settings.json。这里能控制两件关键事允许它自动执行哪些命令以及默认用哪个模型。{ permissions: { allow: [ Bash(pnpm test:*), Bash(pnpm tsc:*), Bash(git status), Bash(git diff:*), Bash(git add:*), Bash(git commit:*) ], deny: [ Bash(git push:*), Bash(rm -rf:*), Read(./.env), Read(./**/*.pem) ] }, model: claude-sonnet-4-20250514 }allow里的命令 Claude Code 会直接跑不再逐条问你deny里的会被硬拦截。把git push放进 deny 是我强烈建议的——让 AI 提交可以让它直接推远端太危险。Read规则能防止它把密钥读进上下文。模型选择上日常改代码、写测试、做重构用claude-sonnet-4-20250514就够了速度快、成本低。遇到需要跨多个文件推理的架构级任务比如“把这个模块从回调重写成 async/await 并保持行为一致”再切到 Opus。切换方式有两种改 settings.json 的model字段或者在会话里用/model命令临时切。提示模型名要写完整带日期后缀的版本号只写claude-sonnet-4在某些通道上会报 model not found。如果你打算长期把 Claude Code 挂在 CI 或本地 Agent 流程里跑Coding Plan 这种按量方案比单次调用更好控预算尤其适合每天几十次提交的场景。5. Git 工作流用钩子验证 AI 的改动Claude Code 能帮你写提交信息、生成 diff 摘要但“它说改好了”不等于“真的改好了”。我的做法是在pre-commit钩子里加一道自动验证AI 提交时如果类型检查或测试挂了直接打回。先建钩子文件mkdir -p .git/hooks cat .git/hooks/pre-commit EOF #!/bin/sh echo [pre-commit] 运行类型检查... pnpm tsc --noEmit || { echo 类型检查失败提交被拦截。请修复后重试。 exit 1 } echo [pre-commit] 运行单元测试... pnpm test --run || { echo 测试失败提交被拦截。 exit 1 } echo [pre-commit] 通过。 EOF chmod x .git/hooks/pre-commit装好之后让 Claude Code 做一次真实改动来验证。比如在会话里输入把 src/lib/formatDate.ts 里的 moment 替换成 dayjs并更新对应测试它会改文件、跑测试。如果它改完直接git commit钩子会自动触发。你可以在另一个终端观察输出看到[pre-commit] 通过。才算这次 AI 改动合格。如果被拦截Claude Code 会读到错误信息并尝试修复——这正是钩子的意义把“验证”变成流程的一部分而不是靠人肉 review。提交信息也可以交给它生成但要在 CLAUDE.md 里约束格式。实测下来明确写了 Conventional Commits 之后它生成的feat: 替换日期库为 dayjs比默认的update file规范得多。6. 本篇常见错排查报错一401 Unauthorized。九成是ANTHROPIC_AUTH_TOKEN没导出成功或者 Key 复制时带了空格。执行echo $ANTHROPIC_AUTH_TOKEN确认非空再检查有没有首尾空白。报错二model not found。模型名写错。Sonnet 4 用claude-sonnet-4-20250514Opus 用对应的完整版本号。别用简称。报错三CLAUDE.md 不生效。检查文件名大小写必须是全大写CLAUDE.md再确认它在你当前工作目录或其父目录。用/memory命令能看到当前加载了哪些记忆文件。报错四钩子不执行。chmod x漏了或者文件里用了 Windows 换行符。用file .git/hooks/pre-commit确认是 shell 脚本必要时dos2unix转一下。报错五权限配置被忽略。settings.json 必须是合法 JSON多一个逗号都会静默失效。用python -m json.tool ~/.claude/settings.json校验一遍。报错六上下文越跑越乱。长会话里用/compact压缩历史保留摘要释放空间。任务切换时开新会话比在一个会话里硬撑更干净。7. 把流程跑顺之后真正让 Claude Code 好用的不是某个神奇提示词而是你给它搭的这套“轨道”CLAUDE.md 定义它该知道什么settings.json 定义它能做什么Git 钩子定义什么算做完。三者一扣AI 就从“会聊天的补全工具”变成了流程里可验证的一环。模型选择上记住一条Sonnet 4 打日常Opus 啃硬骨头。成本敏感就盯着用量别让一个会话无限膨胀。通道侧如果还没定TaoToken 的模型对话 可以先拿来试提示词跑顺了再固化进 CLI 配置。官网入口在 taotoken.net需要长期编码 Agent 场景的可以看 Coding Plan。最后留一个我常用的习惯每次大改动前先让 Claude Code 用git diff把当前状态读一遍再动手。它知道“从哪改起”比直接甩需求准确得多。
返回列表