這是 JGit 中的一個錯誤(問題 408)。TLDR:較新的 git 客戶端經過優化,可以在線路上發送更少的數據。JGit 期望發送完整的數據,但也有本地 git 可以優化發送對象的場景。默認情況下,JGit 要求發送的所有內容都是完整且可引用的。
如果您遇到這種情況,解決方法是暫時禁用接收包的可達性檢查、推送,然后重新啟用設置。
git.checkReferencedObjectsAreReachable = false
在GitBlit的服務端配置中添加上面的代碼,就可以確保push成功。
等到push成功之后,再注釋這段配置,使用#注釋,以便下一次需要的時候再開啟。