1. 为什么值得把 Claude Code 装进你的工作流
第一次听说 Claude Code 的时候,我正被一个遗留项目里三百多行的工具函数折磨——改一个参数,上下游五个文件跟着报错,手动一个个改完还要跑测试确认没漏。当时我的第一反应是:如果有个工具能直接读懂整个仓库的上下文,我描述需求它来改,改完还能自己跑测试验证,那得省多少事。Claude Code 就是干这个的。它不是那种只会在编辑器里补全几行代码的插件,而是一个跑在终端里的智能体,能读文件、改代码、执行命令、跑测试,甚至帮你提交 Git。你可以把它理解成一个坐在你旁边、熟悉你整个项目结构、随时听你指挥的结对搭档。
这篇内容适合三类人:一是完全没接触过命令行工具、但想试试 AI 辅助编程的开发者;二是已经用过各种代码补全插件、想进一步把“改代码”这件事也交给 AI 的人;三是团队里需要统一开发流程、想把 AI 工具接入现有 Git 工作流的技术负责人。不管你之前有没有用过类似的终端工具,只要你能照着步骤敲命令,就能跟着走完从安装到完成第一次代码修改的全过程。我会把每一步为什么这么做、可能踩什么坑都讲清楚,而不是只丢一堆命令让你复制。
核心关键词先摆出来:Claude Code 的安装、代码修改、Git 集成、CLAUDE.md 配置文件。这四个词贯穿全文,后面每个环节都会围绕它们展开。安装是入口,代码修改是目的,Git 是保障,CLAUDE.md 是让 AI 真正懂你项目的关键。把这四件事串起来,你就能形成一个完整的工作闭环。
2. 安装前的环境准备与依赖梳理
2.1 操作系统与终端环境的选择
Claude Code 官方支持 macOS、Linux 和 Windows(通过 WSL)。如果你用的是 Windows,我强烈建议走 WSL 这条路,而不是直接在 PowerShell 或 CMD 里跑。原因很简单:Claude Code 在执行命令时依赖大量 Unix 风格的 shell 工具,比如grep、sed、find,这些在原生 Windows 环境下要么没有,要么行为不一致。WSL 给你一个完整的 Linux 子系统,所有命令行为和 macOS/Linux 保持一致,省去大量兼容性排查的时间。
macOS 用户直接用系统自带的 Terminal 或者 iTerm2 就行,Linux 用户用默认终端即可。有一个细节需要注意:确保你的终端支持 256 色和 UTF-8 编码,否则 Claude Code 的输出可能会出现乱码或者颜色显示异常。可以在终端里执行echo $TERM确认,正常应该输出xterm-256color或类似值。如果不是,在 shell 配置文件里加上export TERM=xterm-256color即可。
2.2 Node.js 与 npm 的安装配置
Claude Code 是通过 npm 分发的,所以 Node.js 是必须的前置依赖。官方要求 Node.js 18 或更高版本。我实测下来,Node.js 20 LTS 是最稳的选择,既不会太新导致某些包不兼容,也不会太旧缺少必要的 API。
安装 Node.js 有几种方式,我推荐用版本管理工具而不是直接下载安装包。macOS 和 Linux 用户可以用nvm,Windows WSL 用户同样可以用nvm。这样做的好处是以后切换 Node 版本只需要一行命令,不会污染系统环境。
# 安装 nvm(macOS/Linux/WSL 通用) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 重新加载 shell 配置 source ~/.bashrc # 如果你用 zsh,改成 source ~/.zshrc # 安装 Node.js 20 LTS nvm install 20 nvm use 20 nvm alias default 20 # 验证安装 node -v # 应该输出 v20.x.x npm -v # 应该输出 10.x.x 或更高如果你不想用 nvm,也可以直接从 Node.js 官网下载安装包。Windows 用户注意:如果你选择在 WSL 里开发,Node.js 也要装在 WSL 里,而不是 Windows 侧。我见过有人 Windows 装了 Node,WSL 里跑 Claude Code 找不到 npm,排查半天才发现是两套环境。
2.3 Git 的安装与基础配置
Git 是 Claude Code 工作流里不可或缺的一环。Claude Code 在修改代码后,会通过 Git diff 来展示变更内容,你也可以让它直接帮你执行git add和git commit。更重要的是,Git 给了你一个安全网——如果 AI 改错了,一条git checkout .就能回滚所有变更。
# Ubuntu/Debian/WSL sudo apt update && sudo apt install git -y # macOS(如果没装过) brew install git # 验证 git --version安装完 Git 之后,必须配置用户名和邮箱,否则后续提交会报错:
git config --global user.name "你的名字" git config --global user.email "你的邮箱@example.com"还有一个容易被忽略的配置:换行符处理。Windows 和 Unix 的换行符不同,如果不配置,Git 可能会在提交时自动转换,导致 diff 里出现大量无意义的变更。建议加上:
# macOS/Linux/WSL git config --global core.autocrlf input # 纯 Windows 环境(如果你坚持不用 WSL) git config --global core.autocrlf true2.4 安装 Claude Code 本体
前置依赖搞定后,安装 Claude Code 本身只需要一条命令:
npm install -g @anthropic-ai/claude-code安装完成后,执行claude --version确认安装成功。如果提示找不到命令,检查一下 npm 的全局 bin 目录是否在 PATH 里。可以用npm config get prefix查看全局安装路径,然后确认这个路径下的bin目录已经加入 PATH。
注意:不要用
sudo npm install -g,这会导致权限问题,后续升级也会很麻烦。如果遇到权限报错,正确做法是配置 npm 的全局目录到用户目录下,而不是加 sudo。
首次运行claude命令时,它会引导你完成认证。按照提示在浏览器里登录你的账号即可。认证信息会保存在本地,后续使用不需要重复登录。
3. 第一次启动与项目初始化
3.1 在项目目录中启动 Claude Code
安装完成后,cd到你的项目根目录,然后直接输入claude回车。Claude Code 会自动读取当前目录的文件结构,建立一个初步的项目上下文。第一次启动时,它会扫描目录下的文件,但不会读取所有文件内容——那样太慢也没必要。它只会在你需要的时候按需读取相关文件。
启动后你会看到一个交互式界面,底部有输入框,可以直接用自然语言描述你的需求。比如你可以输入“这个项目是做什么的”,它会读取 README 和主要源码文件后给你一个总结。这一步的目的是确认 Claude Code 能正确识别你的项目结构。
如果你在一个 Git 仓库里启动,Claude Code 会自动感知 Git 状态,包括当前分支、未提交的变更等。如果不在 Git 仓库里,它会提示你初始化一个。我建议所有项目都用 Git 管理,哪怕只是本地临时项目,因为 Claude Code 的很多能力都依赖 Git 来提供上下文和安全保障。
3.2 CLAUDE.md 文件的作用与创建
CLAUDE.md 是 Claude Code 的“项目说明书”。每次启动时,它会自动读取项目根目录下的 CLAUDE.md 文件,把里面的内容作为系统提示的一部分。这意味着你可以在里面写项目规范、技术栈说明、代码风格要求、常用命令等,Claude Code 会在整个会话中遵守这些约定。
举个例子,如果你在 CLAUDE.md 里写“所有函数必须用 JSDoc 注释”,那么 Claude Code 在帮你写新函数时就会自动加上 JSDoc。如果你写“测试用 vitest 跑,命令是npm run test”,它就会用这个命令来验证修改。
创建 CLAUDE.md 很简单,在项目根目录新建一个文件即可:
# 项目说明 ## 技术栈 - 语言:TypeScript 5.x - 框架:React 18 + Vite - 测试:Vitest - 包管理:pnpm ## 代码规范 - 使用 2 空格缩进 - 组件文件用 PascalCase 命名 - 工具函数用 camelCase 命名 - 所有导出函数必须有 JSDoc 注释 ## 常用命令 - 开发:pnpm dev - 测试:pnpm test - 构建:pnpm build - 类型检查:pnpm typecheck ## 注意事项 - 不要修改 src/config/ 目录下的文件 - 所有 API 请求必须经过 src/utils/request.ts 封装这个文件不需要一次写完美,可以在使用过程中逐步补充。我自己的习惯是每次发现 Claude Code 做了不符合预期的行为,就把对应的规范补进 CLAUDE.md,下次它就不会再犯同样的错。
3.3 用 /init 命令快速生成初始配置
如果你不想手动写 CLAUDE.md,Claude Code 提供了一个/init命令,它会自动分析你的项目结构、依赖文件、现有代码风格,然后生成一份初始的 CLAUDE.md。我试过几个不同类型的项目,生成的配置质量还不错,尤其是技术栈和常用命令部分基本准确。
不过自动生成的内容偏通用,缺少项目特有的约束。我的做法是先用/init生成一版,然后在此基础上手动补充项目特有的规范和注意事项。这样既省去了从零开始的时间,又能保证关键约束不遗漏。
提示:CLAUDE.md 可以放在子目录里,Claude Code 在处理该目录下的文件时会额外读取子目录的 CLAUDE.md。这个特性适合 monorepo 项目,可以为每个子包定义不同的规范。
4. 完成第一次代码修改的完整流程
4.1 选择一个合适的练手任务
第一次用 Claude Code 改代码,不要上来就让它重构核心模块。选一个边界清晰、影响范围小、容易验证的任务。比如:给某个工具函数加一个参数、修复一个明显的拼写错误、给一个组件加一行日志、或者补一个缺失的类型定义。
我自己的第一次尝试是给一个日期格式化函数加一个timezone参数。这个任务足够简单,但涉及函数签名修改、调用处更新、测试用例调整,能完整体验 Claude Code 的读、改、验流程。选好任务后,在 Claude Code 的输入框里用自然语言描述需求即可,不需要特定的命令格式。
4.2 描述需求与确认修改方案
描述需求时,尽量把上下文说清楚。比如不要只说“加一个 timezone 参数”,而是说“在 src/utils/date.ts 的 formatDate 函数里加一个可选的 timezone 参数,默认值为 'UTC',使用 Intl.DateTimeFormat 的 timeZone 选项来实现”。这样 Claude Code 不需要猜测你的意图,直接进入实现阶段。
Claude Code 收到需求后,会先读取相关文件,然后给出一个修改方案。它可能会问你几个澄清问题,比如“是否需要同时更新测试文件”。这时候你可以直接回答,它会继续。确认方案后,它会展示具体的代码变更,以 diff 的形式呈现,新增行绿色,删除行红色。
这里有一个关键点:Claude Code 默认不会直接修改文件,而是先展示变更让你确认。你可以选择接受、拒绝,或者要求它调整。这个确认机制很重要,给了你一个审查的机会。我建议前几次使用时仔细看每一处变更,确认没有问题再接受。熟悉之后可以开启自动接受模式,提高效率。
4.3 审查变更与运行验证
接受变更后,Claude Code 会把修改写入文件。接下来你可以让它运行测试来验证修改是否正确。直接输入“跑一下相关测试”即可,它会根据 CLAUDE.md 里配置的测试命令来执行。
如果测试通过,恭喜你完成了第一次代码修改。如果测试失败,Claude Code 会读取错误信息,尝试自动修复。我遇到过几次它第一次改得不对、但看到测试报错后自己修正的情况。这个自动修复循环是 Claude Code 比较实用的一个能力,省去了手动复制错误信息再贴回去的步骤。
验证通过后,你可以用git diff查看所有变更,确认没有意外修改。然后就可以正常提交了。你也可以直接让 Claude Code 帮你提交,输入“提交这些变更,commit message 写清楚改了什么”即可。
4.4 用 Git 管理 AI 修改的安全策略
用 Claude Code 改代码,Git 是你的安全网。我的习惯是:在让 Claude Code 做任何修改之前,先确保当前工作区是干净的,所有已完成的修改都已经提交。这样如果 AI 改出来的结果不满意,一条git checkout .就能回到修改前的状态。
如果任务比较复杂,我会先开一个新分支,让 Claude Code 在这个分支上操作。改完验证通过后再合并回主分支。这样做的好处是主分支始终保持稳定,不会因为 AI 的中间状态受到影响。
还有一个技巧:在让 Claude Code 修改之前,先用git stash把当前未提交的变更暂存起来。这样 AI 看到的是一个干净的代码库,不会把你的临时修改和它的修改混在一起。等 AI 改完确认没问题后,再git stash pop恢复你的临时修改。
5. 常见问题与排查技巧实录
5.1 安装与认证阶段的典型问题
问题一:npm install -g报权限错误。这是最常见的问题,尤其是在 macOS 和 Linux 上。根本原因是 npm 的全局目录默认在系统目录下,普通用户没有写权限。解决方案不是加sudo,而是把 npm 全局目录改到用户目录下:
mkdir -p ~/.npm-global npm config set prefix ~/.npm-global # 然后把 ~/.npm-global/bin 加入 PATH export PATH=~/.npm-global/bin:$PATH问题二:认证后仍然提示未授权。这种情况通常是本地缓存的认证信息过期了。可以尝试删除~/.claude目录下的认证缓存文件,然后重新运行claude触发认证流程。如果问题依旧,检查一下系统时间是否准确,时间偏差过大会导致认证令牌验证失败。
问题三:WSL 里安装成功但 Windows 终端里找不到命令。这是因为 WSL 和 Windows 是两套独立的环境。如果你在 WSL 里安装的 Claude Code,就必须在 WSL 终端里使用。想在 Windows 终端里用,需要在 Windows 侧也安装一份,或者配置 WSL 的 PATH 共享。
5.2 代码修改过程中的异常处理
问题一:Claude Code 读取了错误的文件。如果你的项目里有多个同名文件,或者文件路径比较深,Claude Code 可能会找错文件。解决办法是在描述需求时给出完整路径,或者在 CLAUDE.md 里写明关键文件的路径映射。
问题二:修改后测试跑不起来。先确认 CLAUDE.md 里的测试命令是否正确。如果命令没问题但测试仍然失败,让 Claude Code 读取完整的错误输出,它通常能定位到问题。如果它连续几次修复都失败,建议手动介入,把错误信息贴给它并给出更具体的指示。
问题三:变更范围超出预期。有时候你只让它改一个函数,它却顺手改了其他文件。这通常是因为它在读取上下文时发现了“看起来相关”的代码。解决办法是在描述需求时加上明确的边界,比如“只修改 src/utils/date.ts,不要动其他文件”。
5.3 提升 Claude Code 使用效率的独家技巧
技巧一:用/clear清理上下文。当一个任务完成后,如果接下来要做一个完全不相关的任务,先执行/clear清空对话历史。这样可以避免之前的上下文干扰新的任务,也能减少 token 消耗。
技巧二:善用@引用文件。在输入框里输入@会触发文件搜索,可以直接引用特定文件作为上下文。比如@src/utils/date.ts 这个函数需要加一个参数,这样 Claude Code 会优先读取你指定的文件,而不是自己猜。
技巧三:把常用操作写成自定义命令。Claude Code 支持在.claude/commands/目录下定义自定义命令。比如你可以创建一个review.md,里面写好代码审查的提示词,之后只需要输入/review就能触发。这个功能适合团队统一操作规范。
技巧四:定期更新 CLAUDE.md。每次发现 Claude Code 做了不符合预期的行为,就把对应的规范补进去。这个文件越完善,Claude Code 的表现越稳定。我自己的 CLAUDE.md 从最初的十几行扩展到了现在的上百行,覆盖了代码风格、目录结构、测试要求、提交规范等各个方面。
技巧五:用 Git 分支隔离实验性修改。如果想让 Claude Code 尝试一个不确定的方案,先开一个新分支。改完如果效果好就合并,效果不好直接删分支,主分支完全不受影响。这个习惯让我在尝试激进重构时心里踏实很多。
5.4 常见问题速查表
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 安装时报权限错误 | npm 全局目录在系统路径下 | 修改 npm prefix 到用户目录 |
| 启动后提示未认证 | 认证缓存过期或系统时间偏差 | 清除缓存重新认证,校准系统时间 |
| 找不到 claude 命令 | 全局 bin 目录不在 PATH 中 | 将 npm 全局 bin 目录加入 PATH |
| 修改后测试失败 | 测试命令配置错误或代码逻辑问题 | 检查 CLAUDE.md 中的测试命令,让 AI 读取完整错误输出 |
| 变更范围超出预期 | 上下文读取范围过大 | 在需求中明确指定文件路径和修改边界 |
| Git 提交时换行符报错 | autocrlf 配置不当 | 根据系统设置 core.autocrlf |
| WSL 和 Windows 命令不互通 | 两套独立环境 | 在使用的环境中分别安装 |
6. 把 Claude Code 融入日常开发流的几点体会
用了一段时间之后,我最大的感受是:Claude Code 的价值不在于它一次能改多少代码,而在于它把“读代码、改代码、验证代码”这个循环压缩到了一个对话里。以前改一个跨文件的函数签名,需要手动搜索所有调用处、逐个修改、跑测试、看报错、再修,现在只需要描述需求、审查 diff、确认测试通过。省下来的时间可以花在真正需要思考的地方,比如架构设计和边界情况处理。
CLAUDE.md 这个文件值得持续投入。我现在的习惯是每完成一个任务,如果发现 Claude Code 有哪里做得不够好,就花一分钟把对应的规范补进 CLAUDE.md。这个投入的回报率很高,因为下一次它就会自动遵守,不需要重复提醒。时间长了,这个文件就成了项目的“开发规范文档”,对新加入的团队成员也很有参考价值。
Git 的使用习惯也需要相应调整。以前可能一天提交几次,现在用 Claude Code 做修改时,我会更频繁地提交——每完成一个小任务就提交一次。这样万一后续的修改出了问题,回滚的粒度更细,不会牵连已经完成的工作。分支策略上,我倾向于给每个稍大的任务开一个独立分支,让 Claude Code 在分支上自由发挥,验证通过后再合并。
最后分享一个小技巧:如果你在团队里推广 Claude Code,可以先让每个人在自己的分支上试用,把各自遇到的坑和总结的技巧汇总起来,形成团队共享的 CLAUDE.md 模板和自定义命令集。这样新成员上手时不需要从零摸索,直接站在前人的经验上开始。