康康的斜槓人生

一個從生活到創業故事的地方

0%

Git 的安全性檢查問題

當你遇到了以下的問題,別擔心,這不是 Hexo 的 bug,而是 Git 為了防止惡意軟體利用 .git 目錄進行攻擊的一種保護機制。

1
2
3
4
5
6
7
8
9
10
11
12
13
`To add an exception for this directory, call:`

git config --global --add safe.directory D:/website/.deploy_git

`FATAL {`
`err: Error: Spawn failed`
`at ChildProcess.<anonymous> (D:\website\node_modules\hexo-util\lib\spawn.js:51:21)`
`at ChildProcess.emit (node:events:508:28)`
`at cp.emit (D:\website\node_modules\cross-spawn\lib\enoent.js:34:29)`
`at ChildProcess._handle.onexit (node:internal/child_process:294:12) {`
`code: 128`
`}`
`} Something's wrong. Maybe you can find the solution here: %s https://hexo.io/docs/troubleshooting.html`

這其實是你在執行 hexo d (deploy) 時遇到了 Git 的安全性檢查問題。這通常發生在 Windows 環境下,當 Git 發現目前的資料夾所有者與執行命令的使用者不一致時(這在「搬家」到新電腦、重裝系統或從外接硬碟讀取檔案時非常常見)。

解決方法

請打開你的終端機(PowerShell 或 CMD),直接複製並執行錯誤訊息中建議的那行指令:

1
git config --global --add safe.directory D:/website/.deploy_git

這行指令會告訴 Git:「這個目錄是安全的,請信任它並允許執行操作。」

如果執行後還是報錯,請嘗試以下進階方案:

1. 信任整個專案目錄

有時候除了 .deploy_git,外層的 D:/website 也會被攔截。你可以直接信任整個專案路徑:

1
git config --global --add safe.directory D:/website

2. 最暴力的解決方式(信任所有目錄)

如果你是在個人電腦上操作,且有多個專案都遇到同樣問題,可以讓 Git 信任這台電腦上的所有目錄(請確保你不會隨便下載不明來源的 Git 專案):

1
git config --global --add safe.directory "*"

3. 刪除並重新生成部署資料夾

如果上述指令無效,可能是 .deploy_git 內的快取檔案損壞或權限混亂:

  1. 手動刪除專案根目錄下的 .deploy_git 資料夾。
  2. 執行 hexo clean
  3. 重新執行 hexo g -d

理論上 執行完第一條 safe.directory 指令後,應該就能順利完成部署了!

-------------本文結束感謝您的閱讀-------------

本文標題:Git 的安全性檢查問題

文章作者:Hao-Hsiung Kang 康皓雄

發布時間:2026年04月06日 - 00:07

最後更新:2026年04月06日 - 00:12

原始連結:https://blog.hhk.one/git-safe-check/

許可協議:署名-非商業性使用-禁止演繹 4.0 國際 轉載請保留連結並註明作者。

歡迎關注我的其它發布渠道