故障排查
錯誤提示會給出原因和下一步。這一頁把常見的幾種展開。
找不到 git
提示:找不到 Git。請安裝 Git,或在設置中選擇路徑。
- 在終端運行
git --version。沒有輸出就先安裝 Git:- macOS:
xcode-select --install,或用 Homebrew 安裝; - Windows:安裝 Git for Windows;
- Linux:用發行版的包管理器。
- macOS:
- 如果終端裏能跑、應用裏仍找不到,説明應用繼承的
PATH與登錄 Shell 不同。到「設置 → Git → Git 二進制」填入絕對路徑,點「測試」確認。 - 「設置 → 高級 → 日誌 → 檢查 PATH」可以把應用看到的目錄與登錄 Shell 對比,列出缺失項(macOS 與 Linux 提供)。這些目錄也影響 hooks 與 Agent 能否找到
node等工具。
倉庫被鎖定
提示:另一個 Git 進程正在寫入這個倉庫。
git 會用 .git/index.lock 保護索引。遇到這個錯誤時:
- 先確認沒有正在運行的
git命令、IDE 後台任務或其他客戶端; - 等待其結束,再重試操作;
- 確認沒有其他進程後,可以按提示清理殘留的鎖文件。
不要在 git 正在運行時刪除鎖文件,否則可能損壞索引。
超大倉庫
大倉庫不會讓界面一次讀入全部數據,但有幾處明確的上限:
| 位置 | 上限 |
|---|---|
| 歷史列表 | 分頁加載,滾動繼續取 |
| 目錄列表 | 每個目錄 2000 項 |
| 文件搜索與內容搜索 | 500 條匹配 |
| 文件預覽 | 512 KiB / 5000 行 |
| 跨倉庫目錄索引 | 深度 6、每根 2000、總計 5000 |
如果讀取超時,先在「Git 輸出」確認是哪條命令慢。常見原因是網絡文件系統上的倉庫、未拉取的 LFS 對象,或非常大的工作區。把倉庫放到本地磁盤通常是最有效的改善。
提交簽名失敗
提示:Git 無法簽名提交。
- 檢查「設置 → Git → 提交簽名」裏的格式(OpenPGP / SSH)與密鑰是否匹配你的
git config; - SSH 簽名密鑰必須是倉庫之外的現有公鑰文件;應用不會接受粘貼的密鑰內容;
- Git 版本過舊時可能無法校驗某些簽名格式,歷史裏的徽標會顯示為無法驗證,更新 Git 即可;
- 實在無法簽名時,可以臨時關閉提交簽名再提交。
CRLF 與長路徑
混用行尾。 一個文件同時含 CRLF 與 LF 時,片段級與行級操作會被拒絕:請整文件暫存或丟棄,或先統一行尾。
提示:該文件混用 CRLF 與 LF 行尾。
Windows 長路徑。 路徑超過 260 個字符時,需要系統啓用長路徑支持(組策略或註冊表中的 LongPathsEnabled)。應用不會替你改系統設置;啓用後重新打開倉庫即可。
認證失敗
提示:認證失敗。請打開終端解鎖 SSH agent 或登錄。
- SSH:確認 key 已加載,
ssh-add -l能列出它; - HTTPS:確認憑據助手已配置並能提供憑據;
- 應用不會把憑據寫進日誌;HTTPS 密碼由
git的 credential helper 提供; - 令牌類憑據(Forge)在「設置 → Git → Forge 令牌」裏單獨管理。
推送被阻止
推送前的本地預檢會攔下三類問題:
- 私鑰內容 — 不可覆蓋。移除密鑰、改寫提交,並輪換該密鑰;
- 疑似令牌或衝突標記 — 需要輸入
push明確確認; - 新增大文件 — 默認閾值 10 MiB,可調整或改用 LFS。
部分克隆無法在本地完成掃描時,會要求先獲取再推送。這時預檢本身沒有聯網。
恢復被拒絕
提示:快照與當前文件不一致,未寫入任何內容。
這是設計行為:快照之後文件又改過,恢復不會覆蓋新內容。可以先導出快照人工比對,或處理完當前改動後重試。快照仍然保留。
仍然解決不了
「幫助 → 導出診斷包…」會打包日誌、崩潰記錄、系統信息與脱敏設置。把它和復現步驟一起發給 contact@once.work。
最後更新於