戰(zhàn)指南:從安裝配置到項(xiàng)目代碼修改與 Git 提交)
1. 為什么我最終把 Claude Code 裝進(jìn)了日常工作流第一次聽說 Claude Code 的時(shí)候我的反應(yīng)和大多數(shù)人一樣命令行里跑一個(gè) AI 編程助手聽起來像是極客的玩具真到了項(xiàng)目里能頂什么用直到有一次我需要在一個(gè)十幾萬行的老項(xiàng)目里批量替換一套已經(jīng)廢棄的 API 調(diào)用手動(dòng)改了兩百多個(gè)文件之后手指發(fā)酸、眼睛發(fā)花我才認(rèn)真去研究了一下這個(gè)工具。結(jié)果一個(gè)下午的時(shí)間它幫我把剩下三百多個(gè)文件全部處理完還順手把相關(guān)的單元測試也更新了。從那天起Claude Code 就成了我終端里常駐的一個(gè)窗口。這篇內(nèi)容想做的事情很明確帶你從零開始把 Claude Code 裝到你的機(jī)器上配置好然后完成第一次真正意義上的代碼修改。不是那種打印一個(gè) hello world的演示而是讓它在你的真實(shí)項(xiàng)目里干活——讀代碼、改代碼、跑測試、提交 Git。整個(gè)過程我會(huì)把每一步背后的邏輯講清楚包括我踩過的坑和繞過的彎路。適合誰看如果你已經(jīng)會(huì)用命令行做基本操作知道 Git 是什么寫過至少一門編程語言的代碼那這篇內(nèi)容就是為你準(zhǔn)備的。如果你完全沒碰過終端也不用慌我會(huì)把每個(gè)命令都解釋清楚你照著敲就行。關(guān)鍵詞里提到的 Git、CLAUDE.md、VS Code 配置這些我都會(huì)在對(duì)應(yīng)的環(huán)節(jié)展開講。先說一個(gè)很多人關(guān)心的問題Claude Code 和你在網(wǎng)頁上用的對(duì)話式 AI 有什么區(qū)別核心差異在于上下文獲取方式。網(wǎng)頁版你需要手動(dòng)復(fù)制粘貼代碼片段它只能看到你給它的那幾百行。而 Claude Code 直接跑在你的項(xiàng)目目錄里它可以自己讀文件、搜索代碼、執(zhí)行命令、查看 Git 歷史。這意味著它理解的是你的整個(gè)項(xiàng)目而不是一個(gè)孤立的代碼片段。這個(gè)差異在實(shí)際使用中帶來的效率差距比你想象的大得多。2. 安裝前的環(huán)境盤點(diǎn)別急著敲命令2.1 Node.js 是繞不開的前置依賴Claude Code 目前的分發(fā)方式是通過 npm 包管理器安裝所以你的機(jī)器上必須有 Node.js 環(huán)境。這里有一個(gè)很多人忽略的細(xì)節(jié)Node.js 的版本不能太低。我實(shí)測下來18.x 及以上的版本都能正常工作但如果你還在用 16.x 甚至更早的版本安裝過程大概率會(huì)報(bào)錯(cuò)。檢查當(dāng)前版本很簡單node --version npm --version如果版本低于 18建議直接去 Node.js 官網(wǎng)下載最新的 LTS 版本。Windows 用戶下載 msi 安裝包雙擊安裝就行macOS 用戶可以用 Homebrewbrew install nodeUbuntu 用戶可以用 NodeSource 的源來安裝最新版本比系統(tǒng)自帶的 apt 源版本要新很多curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt-get install -y nodejs注意如果你之前用 apt 裝過舊版本的 Node.js建議先卸載干凈再裝新版本否則可能出現(xiàn)兩個(gè)版本共存導(dǎo)致命令沖突的問題。2.2 Git 不只是順便裝一下Claude Code 的很多核心功能都依賴 Git。比如它會(huì)通過git diff來查看你當(dāng)前的代碼改動(dòng)通過git log來理解項(xiàng)目的演進(jìn)歷史在修改代碼之后也會(huì)建議你提交。如果你的項(xiàng)目沒有用 Git 管理Claude Code 的能力會(huì)打不少折扣。Windows 用戶去 Git 官網(wǎng)下載安裝包安裝過程中有一個(gè)選項(xiàng)叫Adjusting your PATH environment建議選Git from the command line and also from 3rd-party software這樣 Git 命令在任意終端里都能用。macOS 用戶通常自帶 Git但版本可能比較老用brew install git更新一下更穩(wěn)妥。Ubuntu 用戶直接sudo apt install git即可。安裝完之后配置一下身份信息這是提交代碼時(shí)必須的git config --global user.name 你的名字 git config --global user.email 你的郵箱2.3 終端的選擇也有講究Claude Code 是一個(gè)交互式的命令行工具它對(duì)終端的能力有一定要求——需要支持 ANSI 轉(zhuǎn)義序列來渲染界面。Windows 上我強(qiáng)烈建議用Windows Terminal而不是老舊的 cmd.exe前者對(duì)顏色和光標(biāo)控制的支持好得多。macOS 自帶的 Terminal.app 或者 iTerm2 都沒問題。如果你在 VS Code 里用集成終端那也可以后面我會(huì)講怎么把 Claude Code 和 VS Code 配合起來用。3. 安裝 Claude Code 的完整過程與常見報(bào)錯(cuò)處理3.1 一條命令搞定安裝環(huán)境準(zhǔn)備好之后安裝本身其實(shí)非常簡單npm install -g anthropic-ai/claude-code-g表示全局安裝這樣你在任何目錄下都能直接使用claude命令。安裝過程會(huì)從 npm 倉庫拉取包速度取決于你的網(wǎng)絡(luò)環(huán)境。如果卡住不動(dòng)可以試試切換 npm 的鏡像源npm config set registry https://registry.npmmirror.com安裝完成后驗(yàn)證一下claude --version能看到版本號(hào)就說明安裝成功了。3.2 首次啟動(dòng)與認(rèn)證流程第一次運(yùn)行claude命令時(shí)它會(huì)引導(dǎo)你完成認(rèn)證。整個(gè)過程是在瀏覽器里完成的終端會(huì)給出一個(gè)鏈接你打開鏈接登錄賬號(hào)并授權(quán)即可。授權(quán)完成后終端會(huì)顯示認(rèn)證成功之后就可以正常使用了。這里有一個(gè)我踩過的坑如果你在公司網(wǎng)絡(luò)環(huán)境下瀏覽器和終端可能不在同一臺(tái)機(jī)器上。比如你在遠(yuǎn)程服務(wù)器上安裝 Claude Code終端給出的鏈接在你本地瀏覽器打開后回調(diào)地址指向的是服務(wù)器的 localhost這就沒法完成認(rèn)證。解決辦法是在本地機(jī)器上也裝一個(gè) Claude Code 完成認(rèn)證然后把認(rèn)證文件復(fù)制到遠(yuǎn)程服務(wù)器對(duì)應(yīng)的目錄下。認(rèn)證文件通常在~/.claude/目錄下。3.3 安裝過程中可能遇到的幾個(gè)典型問題問題一npm 權(quán)限不足。在 macOS 和 Linux 上如果 Node.js 是通過系統(tǒng)包管理器安裝的全局安裝 npm 包時(shí)可能報(bào) EACCES 錯(cuò)誤。解決方案是配置 npm 的全局目錄到用戶目錄下mkdir -p ~/.npm-global npm config set prefix ~/.npm-global export PATH~/.npm-global/bin:$PATH把最后一行加到你的.bashrc或.zshrc里下次打開終端就自動(dòng)生效了。問題二安裝成功但命令找不到。這通常是 PATH 沒有配置好。用npm config get prefix看看 npm 的全局安裝路徑在哪里然后確認(rèn)這個(gè)路徑下的bin目錄在 PATH 里。問題三公司網(wǎng)絡(luò)限制。有些公司的網(wǎng)絡(luò)策略會(huì)攔截 npm 倉庫的訪問。如果你確認(rèn)網(wǎng)絡(luò)沒問題但就是裝不上可以試試用代理或者換一個(gè)網(wǎng)絡(luò)環(huán)境。這個(gè)具體怎么處理取決于你的網(wǎng)絡(luò)環(huán)境我就不展開說了。4. 第一次代碼修改從讀懂項(xiàng)目到提交改動(dòng)4.1 讓 Claude Code 先看懂你的項(xiàng)目安裝好之后進(jìn)入你的項(xiàng)目根目錄直接運(yùn)行cd /path/to/your/project claude你會(huì)看到一個(gè)交互式的界面。這時(shí)候不要急著讓它改代碼先讓它熟悉一下項(xiàng)目。我的習(xí)慣是第一步讓它讀一下項(xiàng)目的 README 和目錄結(jié)構(gòu)請(qǐng)幫我分析一下這個(gè)項(xiàng)目的整體結(jié)構(gòu)包括用了什么技術(shù)棧、主要的模塊劃分、以及入口文件在哪里。Claude Code 會(huì)自動(dòng)讀取相關(guān)文件并給出分析。這一步的價(jià)值在于它會(huì)建立起對(duì)項(xiàng)目的整體認(rèn)知后續(xù)你讓它改代碼時(shí)它知道該去哪里找相關(guān)文件而不是盲目搜索。4.2 CLAUDE.md給 AI 寫一份項(xiàng)目說明書這是我認(rèn)為 Claude Code 最值得花時(shí)間配置的一個(gè)功能。在項(xiàng)目根目錄創(chuàng)建一個(gè)CLAUDE.md文件里面寫清楚項(xiàng)目的關(guān)鍵信息Claude Code 每次啟動(dòng)時(shí)都會(huì)自動(dòng)讀取這個(gè)文件。內(nèi)容可以包括項(xiàng)目的技術(shù)棧和主要依賴代碼風(fēng)格約定比如用幾個(gè)空格縮進(jìn)、命名規(guī)范常用的開發(fā)命令怎么啟動(dòng)開發(fā)服務(wù)器、怎么跑測試、怎么構(gòu)建項(xiàng)目的目錄結(jié)構(gòu)說明任何你希望 AI 遵守的特殊規(guī)則舉個(gè)例子一個(gè)典型的前端項(xiàng)目CLAUDE.md可能長這樣# 項(xiàng)目說明 這是一個(gè)基于 React TypeScript 的后臺(tái)管理系統(tǒng)。 ## 常用命令 - 開發(fā)npm run dev - 測試npm run test - 構(gòu)建npm run build - 代碼檢查npm run lint ## 代碼規(guī)范 - 使用 2 空格縮進(jìn) - 組件文件名用 PascalCase - 工具函數(shù)文件名用 camelCase - 所有新組件必須寫單元測試 ## 目錄結(jié)構(gòu) - src/components/ 通用組件 - src/pages/ 頁面組件 - src/utils/ 工具函數(shù) - src/api/ 接口封裝有了這個(gè)文件你就不需要每次對(duì)話都重復(fù)交代項(xiàng)目背景了。我實(shí)測下來配好CLAUDE.md之后Claude Code 改出來的代碼風(fēng)格和項(xiàng)目現(xiàn)有代碼的一致性明顯提升。4.3 一個(gè)真實(shí)的修改任務(wù)給現(xiàn)有函數(shù)加參數(shù)校驗(yàn)假設(shè)你的項(xiàng)目里有一個(gè)處理用戶注冊的函數(shù)現(xiàn)在需要給它加上參數(shù)校驗(yàn)。你可以這樣跟 Claude Code 說在 src/utils/validate.js 里有一個(gè) validateEmail 函數(shù)現(xiàn)在它只檢查了郵箱是否為空。請(qǐng)幫我增強(qiáng)它加上格式校驗(yàn)要求 1. 必須包含 符號(hào) 2. 前面至少有一個(gè)字符 3. 后面必須包含至少一個(gè)點(diǎn)號(hào) 4. 域名部分至少兩個(gè)字符 改完之后幫我在 tests/validate.test.js 里補(bǔ)充對(duì)應(yīng)的測試用例。Claude Code 會(huì)先讀取這兩個(gè)文件理解現(xiàn)有代碼的結(jié)構(gòu)和風(fēng)格然后進(jìn)行修改。修改完成后它會(huì)展示 diff你可以逐條審查它改了什么。如果某處你不滿意可以直接告訴它調(diào)整。這里有一個(gè)使用技巧盡量把需求描述得具體。加上參數(shù)校驗(yàn)和檢查郵箱格式要求包含 符號(hào)且域名部分至少兩個(gè)字符后者得到的結(jié)果會(huì)精準(zhǔn)得多。Claude Code 不會(huì)讀心術(shù)你給的信息越明確它改出來的代碼越符合預(yù)期。4.4 審查改動(dòng)與運(yùn)行測試Claude Code 改完代碼后不要直接接受。我通常的做法是先看它展示的 diff確認(rèn)改動(dòng)范圍是否符合預(yù)期讓它運(yùn)行相關(guān)測試請(qǐng)運(yùn)行 tests/validate.test.js 里的測試如果測試通過再讓它跑一下完整的測試套件確保沒有破壞其他功能確認(rèn)無誤后讓它幫你提交請(qǐng)把這些改動(dòng)提交到 Git寫一個(gè)合適的 commit messageClaude Code 執(zhí)行 Git 提交時(shí)會(huì)遵循你項(xiàng)目的提交規(guī)范。如果你在CLAUDE.md里寫了 commit message 的格式要求比如遵循 Conventional Commits它會(huì)自動(dòng)遵守。5. 把 Claude Code 接入 VS Code 的兩種方式5.1 在 VS Code 集成終端里直接使用這是最簡單的方式。打開 VS Code按Ctrl打開集成終端直接運(yùn)行claude就行。好處是你可以在編輯器里看代碼在終端里跟 Claude Code 對(duì)話兩邊對(duì)照著看。但這種方式有一個(gè)小問題Claude Code 在集成終端里的界面渲染可能不如獨(dú)立終端流暢尤其是涉及光標(biāo)移動(dòng)和顏色渲染的時(shí)候。如果你遇到顯示異常可以試試在 VS Code 設(shè)置里把terminal.integrated.gpuAcceleration設(shè)為off。5.2 通過 VS Code 擴(kuò)展獲得更緊密的集成Claude Code 提供了 VS Code 擴(kuò)展安裝之后可以在編輯器內(nèi)直接看到 Claude Code 的改動(dòng)建議點(diǎn)擊就能跳轉(zhuǎn)到對(duì)應(yīng)的代碼位置。安裝方式是在 VS Code 擴(kuò)展市場搜索 Claude Code 然后安裝。裝好擴(kuò)展之后在 VS Code 里打開終端運(yùn)行claude擴(kuò)展會(huì)自動(dòng)檢測到并建立連接。之后 Claude Code 修改文件時(shí)VS Code 會(huì)自動(dòng)打開對(duì)應(yīng)的文件并高亮顯示改動(dòng)區(qū)域?qū)彶槠饋矸奖愫芏?。注意擴(kuò)展和命令行工具是兩個(gè)獨(dú)立的組件需要分別安裝。只裝擴(kuò)展不裝命令行工具是用不了的。6. 幾個(gè)讓我少走彎路的使用心得6.1 上下文窗口的管理策略Claude Code 的對(duì)話是有上下文長度限制的。當(dāng)你跟它進(jìn)行了很多輪對(duì)話之后早期的內(nèi)容可能會(huì)被遺忘。我的做法是一個(gè)任務(wù)一個(gè)會(huì)話。改完一個(gè)功能、提交完代碼之后退出當(dāng)前會(huì)話重新開始。這樣每個(gè)會(huì)話的上下文都是干凈的不會(huì)因?yàn)闅v史對(duì)話太長而影響效果。如果任務(wù)比較復(fù)雜需要多輪對(duì)話才能完成可以在關(guān)鍵節(jié)點(diǎn)讓它把當(dāng)前的理解和計(jì)劃寫到一個(gè)臨時(shí)文件里下次會(huì)話開始時(shí)先讀這個(gè)文件恢復(fù)上下文。6.2 善用先計(jì)劃再執(zhí)行的模式對(duì)于涉及多個(gè)文件的復(fù)雜改動(dòng)我習(xí)慣先讓 Claude Code 出一個(gè)計(jì)劃我需要把項(xiàng)目里所有的 API 請(qǐng)求從 fetch 改成 axios。請(qǐng)先不要改代碼先給我一個(gè)改動(dòng)計(jì)劃列出需要修改的文件和每個(gè)文件的改動(dòng)要點(diǎn)。等它列出計(jì)劃之后我審查一遍確認(rèn)沒問題再讓它執(zhí)行。這樣做的好處是避免它改到一半發(fā)現(xiàn)方向不對(duì)來回返工浪費(fèi)時(shí)間。6.3 遇到問題時(shí)怎么排查如果 Claude Code 改出來的代碼不符合預(yù)期不要直接說不對(duì)重來。更好的做法是指出具體哪里不對(duì)你修改的 validateEmail 函數(shù)里域名部分的校驗(yàn)邏輯有問題。當(dāng)前的正則表達(dá)式會(huì)把 userdomain 這種沒有點(diǎn)號(hào)的郵箱判定為合法但我們的需求是必須包含點(diǎn)號(hào)。給它具體的反饋它就能精準(zhǔn)地修正。這跟帶新人的邏輯是一樣的——你告訴它你錯(cuò)了它不知道錯(cuò)在哪你告訴它第三行的判斷條件寫反了它立刻就能改。6.4 關(guān)于安全性的考量Claude Code 在執(zhí)行某些操作時(shí)會(huì)請(qǐng)求你的確認(rèn)比如運(yùn)行終端命令、修改文件等。不要無腦點(diǎn)同意。尤其是涉及刪除文件、修改配置文件、執(zhí)行數(shù)據(jù)庫操作這類命令時(shí)一定要看清楚它要做什么再確認(rèn)。我一般會(huì)在CLAUDE.md里明確寫出哪些目錄是只讀的、哪些操作需要額外確認(rèn)這樣能減少誤操作的風(fēng)險(xiǎn)。另外如果你的項(xiàng)目涉及敏感信息比如 API 密鑰、數(shù)據(jù)庫密碼確保這些內(nèi)容不在 Claude Code 能讀取到的文件里。用.gitignore和.claudeignore把敏感文件排除掉。7. 從第一次修改到日常使用的過渡第一次成功讓 Claude Code 幫你改完代碼并提交之后你會(huì)發(fā)現(xiàn)它的使用場景遠(yuǎn)不止于此。我現(xiàn)在日常會(huì)用它做的事情包括寫單元測試、重構(gòu)老舊代碼、排查 bug、寫文檔注釋、review 代碼改動(dòng)、甚至幫我分析性能瓶頸。每一個(gè)場景的使用方式都不太一樣但核心邏輯是一致的給它足夠的上下文給它明確的需求然后審查它的輸出。有一點(diǎn)需要提醒Claude Code 不是萬能的。它偶爾會(huì)犯錯(cuò)會(huì)誤解你的意圖會(huì)寫出看起來對(duì)但實(shí)際有問題的代碼。把它當(dāng)成一個(gè)能力很強(qiáng)但需要監(jiān)督的助手而不是一個(gè)可以完全放手的自動(dòng)化工具。你審查它改動(dòng)的能力決定了你使用它的上限。最后分享一個(gè)我最近發(fā)現(xiàn)的用法當(dāng)你接手一個(gè)陌生的老項(xiàng)目時(shí)讓 Claude Code 幫你生成一份項(xiàng)目架構(gòu)文檔。它會(huì)讀取關(guān)鍵文件、分析依賴關(guān)系、梳理調(diào)用鏈路最后輸出一份結(jié)構(gòu)清晰的說明。這比你自己一個(gè)個(gè)文件翻要快得多而且它不會(huì)漏掉那些藏在角落里的重要邏輯。