當你遇到了以下的問題,別擔心,這不是 Hexo 的 bug,而是 Git 為了防止惡意軟體利用 .git 目錄進行攻擊的一種保護機制。
1 | `To add an exception for this directory, call:` |
這其實是你在執行 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 內的快取檔案損壞或權限混亂:
- 手動刪除專案根目錄下的
.deploy_git資料夾。 - 執行
hexo clean。 - 重新執行
hexo g -d。