Claude Code 找不到 Git Bash?裝了一樣卡住
文 / Coolkid發布:2026-09-10閱讀約 15 分鐘

短答:Windows 上的 Claude Code 說找不到 Git Bash,就算你真的裝好了也一樣。最快的解法是直接告訴它檔案在哪——在 Claude Code 的設定檔裡加一行,把 C:\Program Files\Git\bin\bash.exe 這個位置寫給它,再把 Claude Code 整個關掉重開。會找不到,是因為它其實不是在找 bash,而是照幾個固定的地方去找 Git;你的 Git 不在那幾個地方,它就一直說沒有。
這篇不重複「怎麼裝 Git Bash」的教學。做法是照你看到的錯誤訊息走:先看你自己撞到的是哪一句,再給你最快的修法。然後把兩件事拆開講清楚——「裝了為什麼還是找不到」,還有「重開到底要重到哪一層」。
Claude Code 顯示什麼錯誤?
Claude Code 在 Windows 上卡在 Git Bash 的時候,畫面上會出現三句話裡的其中一句。前兩句一出現,程式就直接關掉了。第三句不會關掉程式,只有你當下跑的那道指令會失敗。最常見的是下面這句。
Claude Code on Windows requires either Git for Windows (for bash) or PowerShell. Install one of:
- Git for Windows: https://git-scm.com/downloads/win
- PowerShell 7: https://aka.ms/powershell
Or set CLAUDE_CODE_GIT_BASH_PATH to your bash.exe location.
你也可能碰到另外兩句。第二句跟第一句一樣會讓程式直接關掉,差別在原因不同:是設定裡把 PowerShell 那條路也關掉了(寫著 CLAUDE_CODE_USE_POWERSHELL_TOOL=0)。
兩條路都不通,才會看到這句。第三句不一樣,只在開了 sandbox(把指令關進隔離環境跑的模式)的時候出現,而且只讓當下那道指令失敗,不會把整個程式關掉。
Claude Code on Windows requires a shell tool. Git Bash was not found and the PowerShell tool is disabled (CLAUDE_CODE_USE_POWERSHELL_TOOL=0).
Sandboxed bash on Windows requires Git Bash, which is not installed. Install Git Bash, or run this command unsandboxed (dangerouslyDisableSandbox).
如果你查到的舊教學寫著「requires git-bash」,這句話已經不在現在的版本裡了。LAB 2026-09-10 把 Claude Code 這個程式本身(218 MB 那一整支)整個掃過一遍,這句話出現 0 次。
Claude Code on Windows requires git-bash
差別不只是那句話換了,連出現的時機都變了。官方現在把 Git for Windows 列為選配。
沒裝 Git Bash,但 PowerShell 還在,Claude Code 一個字都不會印,直接改用 PowerShell 執行指令。你只會發現 Bash 工具不見了,不會看到任何錯誤訊息。
真的看到第一句,代表連 PowerShell 都用不了,問題比「沒裝 Git Bash」還要深一層。這個判斷順序,是 LAB 從 Claude Code 這個程式裡面寫的邏輯查到的。
網路上很多教學還寫「Windows 一定要裝 Git Bash」,那是舊說法。
怎麼樣可以快速修復?
下面五步是照順序試的,不是五件都要做。哪一步之後不再出現錯誤訊息,就停在那裡。
第一步:先把 Claude Code 完整關掉,再打開一次。什麼都不用改,先試這個。它找 Git Bash 只在打開的那一刻找一次,你要是在它開著的時候才把 Git 裝好,它不會回頭再看(原因在第四節)。
要注意什麼叫「完整關掉」:不是關掉對話,也不是關掉視窗。用終端機的話,是關掉整個終端機視窗(打指令的那個黑底視窗),不是只結束 claude 這個指令。用桌面 App 的話,是真的把整個應用程式結束掉。
好了就到這裡,下面不用看。還是說找不到,再往下一步。
第二步:確認 bash.exe 在不在預設的位置。打開檔案總管,搜尋欄貼上這一串:C:\Program Files\Git\bin\bash.exe。
看得到這支檔案,就把這一串路徑複製起來,下一步馬上要用。整個資料夾都找不到,代表你的 Git 裝在別的地方——下一步的路徑就不能照抄這一串,要換成你自己那一支的位置。
第三步:在設定檔裡直接告訴它路徑。打開 Claude Code 的設定檔 settings.json,加上 CLAUDE_CODE_GIT_BASH_PATH 這一項,值就是上一步那支 bash.exe 的位置。
{
"env": {
"CLAUDE_CODE_GIT_BASH_PATH": "C:\\Program Files\\Git\\bin\\bash.exe"
}
}
要指的是 Git\bin\bash.exe 這支檔案本身,官方文件就是這樣寫的。不是 Git\cmd 那個資料夾,也不是 git-bash.exe。
我自己是在檔案總管把路徑複製起來,再貼進去。這樣最快,但中間有兩個地方會失敗,照這五步走就不會踩到:
- 先在檔案總管裡找到那支 bash.exe,通常在 C:\Program Files\Git\bin 底下。
- 按住 Shift,在檔案上按右鍵,選「複製路徑」。Windows 11 的右鍵選單裡,這個選項也可能叫「複製檔案位址」。
- 把複製到的內容,貼進設定檔裡。
- 刪掉貼上去的內容前後那兩個雙引號。複製過來會長這樣:
"C:\Program Files\Git\bin\bash.exe",要改成C:\Program Files\Git\bin\bash.exe。複製路徑會自己幫你加上那兩個引號,留著不刪,這行設定就會失效。 - 把路徑裡每一個「\」都改成「/」。這樣就不用再算反斜線要打成一條還是兩條。
存完檔,開一個新對話就會生效,不用整個重開——設定檔的內容,是每次開一個新的小程式時重新讀的。好了就到這裡,下面不用看。還是說找不到,再往下一步。
第四步:設了還是一樣,先看你那一行是不是被默默忽略了。這一步最容易卡住,因為設定寫錯的時候,畫面上不會告訴你,錯誤訊息跟你根本沒設過一模一樣。對照下面這張表,看你貼進去的是哪一種。
| 你貼進去的樣子 | 電腦讀到的檔名 | 名字合不合格 | 檔案在不在 | 結果 |
|---|---|---|---|---|
| C:/Program Files/Git/bin/bash.exe | bash.exe | 合格 | 在 | 會用 |
| C:\Program Files\Git\bin\bash.exe | bash.exe | 合格 | 在 | 會用 |
| "C:\Program Files\Git\bin\bash.exe" | bash.exe" | 不合格 | 不在(多了引號,變成另一個檔名) | 不會用,錯誤訊息跟沒設一樣 |
| C:/Program Files/Git/git-bash.exe | git-bash.exe | 不合格 | 在 | 不會用,錯誤訊息跟沒設一樣 |
前兩種會用,後兩種會被忽略。最常見的是第三種:直接複製路徑,前後會多帶一組雙引號,那組引號會讓它把檔名讀成 bash.exe" 而不是 bash.exe,於是判定成另一個檔案。
還有一個更早就失敗的情形:路徑裡的反斜線「\」照原樣貼進去,整個設定檔會壞掉、根本讀不進去。LAB 實測過,這時候系統回報的錯誤是 Invalid \escape。最省事的作法就是上一步第五點——把每個「\」都改成「/」。
好了就到這裡,下面不用看。還是說找不到,再往下一步。
第五步:五步都試過還是不行,那就先別修了。沒有 Git Bash,Claude Code 一樣能用,只是少了 Bash 工具這一項。值不值得繼續弄下去,看完第五節再決定。
為什麼裝了 Git Bash 還是找不到?
Claude Code 找 Git Bash,是分三層、一層一層往下找的。裝了還是找不到,通常就是卡在其中一層。
這不是官方文件寫的,是 LAB 直接讀 Claude Code 這個程式裡面寫的邏輯查出來的。2026-09-10 在這台電腦上看到的版本是 2.1.258。以下講的是這個版本的行為,以後改版可能就不一樣了。
- 先看你自己寫的那行設定。但它會挑檔名:你指過去的那個檔案,名字必須剛好是 bash.exe、sh.exe、bash 或 sh。而且檔案要真的在那裡。指到 git-bash.exe 這種名字,它不收。只要有一項不合,它就默默改去下一個地方找——而且不會告訴你設定寫錯了,你看到的失敗訊息,跟根本沒設過一模一樣。
- 第二層:兩個寫死在程式裡的固定位置:C:\Program Files\Git\bin\bash.exe,還有 C:\Program Files (x86)\Git\bin\bash.exe。
- 第三層:反過來去找 git 裝在哪裡。在終端機打
where.exe git(這是去問電腦,git 裝在哪),再往上兩層資料夾找 bin\bash.exe。
它找的是 git,不是 bash。電腦知不知道 bash 裝在哪,一點都不重要。重要的是電腦知不知道 git 裝在哪。而且 git 的安裝資料夾底下,要有 bin\bash.exe 這支檔案。
在終端機打得開 bash,不能當作證據。因為你打下去實際叫到的那一支,可能跟 Claude Code 要找的,根本是兩支不同的檔案。
| 你打的指令 | 實際叫到的東西 |
|---|---|
| where.exe bash | C:\Users\你的帳號\AppData\Local\Microsoft\WindowsApps\bash.exe |
| where.exe git | C:\Program Files\Git\cmd\git.exe |
這是 LAB 用登錄檔裡真正那份「哪個指令放在哪裡」的清單查出來的結果,等於從開始選單開一個全新視窗會拿到的那一份。
第一支 bash.exe,大小是 0,裡面根本沒東西,是 Windows 放的一個空殼捷徑,指向 WSL 的啟動器,不是 Git Bash。
但 Claude Code 根本不看這一支,看的是 git 裝在哪裡,再往上推算出 bash.exe 的位置。
自己在家怎麼測:在終端機打一次 where.exe git,看回來的路徑,往上兩層,有沒有 bin\bash.exe。有,Claude Code 就找得到;沒有,這就是會踩雷的原因。這只是自己測試用的方法,不是官方指令。
真正會踩雷的情形,是 Git 裝在你自己選的位置,而且在安裝精靈裡選了「只從 Git Bash 使用 Git」。
這樣一來,git 不會被加進電腦知道要去哪裡找程式的那份清單,第三層當然也反推不出來。另一種情形,是用 scoop 或可攜版這類工具裝的,資料夾擺放的方式跟官方不一樣。
自己手動指定路徑,也有一個問題:CLAUDE_CODE_GIT_BASH_PATH 指到的檔案,如果不是 bash 或 sh 那種檔案,Claude Code 不會告訴你設定錯了,而是悄悄改回自動去找。
你看到的錯誤訊息,跟根本沒設定時一模一樣。這就是「我明明設了啊」這種困惑的由來。
claude doctor 這個檢查指令,也幫不上這一題。LAB 實際跑過一次,畫面上列出安裝方式、版本、搜尋功能、自動更新狀態,完全沒有 Git Bash 這一項。
最後印出「No installation issues found」,看起來一切正常,其實只是根本沒檢查到這一塊。
重開 Claude Code 要做到哪一層?
第二節第一步叫你把 Claude Code「完整關掉」,這一節講的就是為什麼要講得那麼囉嗦。「重開 Claude Code」有三種深度,大多數人只做到第一種。
- 只關掉對話或分頁,再開一個新的。沒有用。
- 把整個程式完整結束掉,再重新打開。終端機的話,是關掉整個終端機視窗,不是只結束 claude 這個指令。桌面 App 的話,是真的結束整個應用程式,不是只關掉視窗。這一種才有用。
- 重開機。一定有效,但多數情況不必做到這一步,第二種就夠了。
第一種沒用,是因為它找 Git Bash 只在程式打開的那一刻找一次,找到的答案就定住了。你在它開著的時候才把 Git 裝好,它不會回頭再檢查。
但「只算一次」只解釋一半。你每開一個新對話,其實都是開了一個新的小程式,那份記住的答案會重算。真正甩不掉的是另一件事:Windows 在程式打開的那一刻,會塞給它一張「哪個指令放在哪裡」的清單,之後就不再更新了。新對話是新的沒錯,可是那張清單是跟最上層那個 Claude Code 拿的——而它從你早上打開之後就沒關過,手上還是舊清單。所以它照樣找不到 Git。
function P$(){ if(PH.gitBashPath===void 0) PH.gitBashPath=ue(); return PH.gitBashPath }
LAB 2026-09-10 在這台電腦上數了一次當時開著的程式,證實了這件事。總共有 20 支 claude.exe,全部掛在同一支最上層的程式底下,只有那一支(早上 8 點多就開著的桌面 App 本體)有視窗。
其餘的都是它開出來的小程式,開開關關的其實只是這些小程式,最上層那支沒死。拿到的「哪個指令放在哪裡」的清單,當然還是舊的。
「重開 Claude 是完整重開,不是只把 CLI 或桌面 App 關掉再打開」,這是我後來才想通的一句話。也應該就是我當初卡住的原因,最後才只能去重新開機。
我當初沒有留下畫面或紀錄,不能斷言當時到底做了什麼。只能說事後照這段程式邏輯回頭看,最可能就是停在第一種深度。
這大概是這篇最值得記的一點:網路上的教學幾乎都寫「重開之後就恢復正常了」,卻很少講清楚,到底要做到哪一層。
沒有 Git Bash,Claude Code 就不能用嗎?
沒有 Git Bash,Claude Code 不是不能用。官方現在把 Git for Windows 列為選配,沒裝就退回 PowerShell 執行指令,一樣能跑,只是少了 Bash 工具這一項。
這也是為什麼你可能從頭到尾沒看過任何錯誤訊息,只是覺得哪裡怪怪的:沒裝 Git Bash 但 PowerShell 在,Claude Code 一個字都不印,直接換一條路走。真的印出那三句的其中一句,代表兩條路都不通了。
網路上多數舊教學還寫「Windows 上一定要先裝 Git Bash」,那是舊版必裝年代留下的說法。照抄之前,先看一眼自己踩到的是哪一句錯誤訊息,再決定要不要裝。
Claude Code 在 Windows 上找不到 Git Bash,現在的錯誤訊息有三句:前兩句一出現,程式就直接關掉;第三句只讓當下那道指令失敗。反過來,沒裝 Git Bash 但 PowerShell 還在的時候,Claude Code 一個字都不印,直接悄悄改用 PowerShell,只是少了 Bash 工具這一項。舊版那句「requires git-bash」已經從現在的版本拿掉了。最快的修法:在 settings.json 加一行 CLAUDE_CODE_GIT_BASH_PATH,指到真正的 Git\bin\bash.exe,存檔後把 Claude Code 整個關掉重開。自己複製路徑常踩兩個雷:前後多帶一組引號,還有反斜線讓設定檔整個壞掉——解法是刪掉引號、把「\」都改成「/」。裝了還是找不到,是因為找 Git Bash 分三層:先看你手動設的路徑(但要通過檔名檢查),再看兩個寫死的固定位置,最後從電腦知道的 git 位置反推。找的是 git,不是 bash,在終端機打得開 bash 不能當證據,claude doctor 也不檢查這一項。重開也有深淺之分:只關掉對話或重打一次 claude,找到的答案會重算,但「哪個指令放在哪裡」那份清單,還是最上層那支程式的舊清單;要把整個程式關掉,或乾脆重開機,才會拿到新的一份。我當初沒留下紀錄,不能斷言自己踩在哪一層,只能說照程式邏輯回頭看,最可能是重開得不夠徹底。
名詞解釋
- Claude Code
- Anthropic 推出的 AI 寫程式工具,裝在自己電腦的終端機裡,能直接讀寫你的檔案、跑指令,把你用中文描述的需求做成真的網站或工具。
- 終端機(terminal)
- 「用文字指令操作電腦的視窗」的統稱。Mac 叫 Terminal,Windows 上就是 PowerShell,兩者角色相同。
- PowerShell
- Windows 內建的指令視窗:用打字下指令的方式操作電腦,Claude Code 在 Windows 上就在這裡面跑。按 Win + X 可以叫出來。
- PATH(環境變數)
- 系統的「去哪裡找程式」清單。指令打了卻顯示找不到,九成是程式所在的資料夾沒被加進這份清單。
- 環境變數(environment variable)
- 放在系統層、不寫進程式碼的設定值,最常用來放 API 金鑰等機密,避免跟著程式碼被公開。
- Git
- 程式碼的版本紀錄系統:每次改動存成一個「存檔點」(commit),隨時可以回溯、比對、還原,不怕改壞。
- WSL(Windows Subsystem for Linux)
- 微軟提供的功能:在 Windows 裡面跑一個 Linux 子系統,像電腦裡再開一台小電腦。需要 Linux 環境的工具靠它就能在 Windows 上用,但檔案與工具分屬兩個世界,混用容易踩坑。
- 命令列(CLI, Command Line Interface)
- 用打字指令操作電腦的方式,沒有按鈕跟視窗。Claude Code 就是命令列工具。
如果內容對你有用就太好了
隨喜斗內
常見問題FAQ
Claude Code 說找不到 Git Bash,看到的三種訊息是同一件事嗎?
不完全一樣。前兩句一出現,程式就直接關掉,分別對應「Git Bash 和 PowerShell 都用不了」與「你自己把 PowerShell 那條路關掉了」;第三句是 sandbox 模式,只讓當下那道指令失敗,不會把程式關掉。舊版那句「requires git-bash」已經拿掉了。
找不到 Git Bash,最快怎麼修?
打開 settings.json,加上 CLAUDE_CODE_GIT_BASH_PATH,指到 Git\bin\bash.exe。複製路徑記得刪雙引號、把「\」改成「/」。存檔後整個關掉重開。
Git Bash 明明已經裝好了,Claude Code 為什麼還是說找不到?
Claude Code 找 Git Bash 分三層:先看你手動設的路徑、再看兩個固定位置、最後從 git 的位置反推。Git 裝在自己選的位置又沒被電腦記住,三層都可能踩空。
在終端機打 bash 打得開,為什麼 Claude Code 還是說找不到?
打得開不能當證據,因為 Claude Code 找的是 git,不是 bash。LAB 實測發現,終端機叫到的 bash.exe 是 Windows 的空殼捷徑,指向 WSL,大小是 0,跟 Git Bash 無關。
claude doctor 可以拿來檢查這個問題嗎?
不行。claude doctor 的畫面上有安裝方式、版本、自動更新狀態,但完全沒有 Git Bash 這一項,照樣印出「No installation issues found」。得改看三層邏輯。
重開 Claude Code 沒用,是不是就得重開機?
不一定。只關對話或重打一次 claude,找到的答案會重算,但那份「哪個指令放在哪裡」的清單還是舊的;裝在預設位置的人這樣就夠。要整個關掉程式才會拿到新清單,連這樣都沒用,重開機一定有效。
沒有 Git Bash,Claude Code 還能用嗎?
能。官方把 Git for Windows 列為選配,沒裝 Git Bash 但 PowerShell 在,不會報錯,會悄悄改用 PowerShell,只是少了 Bash 工具。很多舊教學還寫「一定要先裝」,那是舊說法。
看完這篇之前先確認:
- Claude Code 在 Windows 上跳出訊息,說找不到 Git Bash,或要你裝 Git for Windows/PowerShell
- 明明已經裝了 Git Bash,Claude Code 還是說找不到,或者設了 CLAUDE_CODE_GIT_BASH_PATH 還是一樣
- 搞不清楚重開之後到底要重到哪個程度才有效,只重開對話沒用
- 還沒開始安裝 Claude Code(先看安裝那篇)
- 已經能正常使用,只是想知道要不要另外裝 WSL
- 遇到的是中文變亂碼,不是找不到 Git Bash
