这是 JGit 中的一个错误(问题 408)。TLDR:较新的 git 客户端经过优化,可以在线路上发送更少的数据。JGit 期望发送完整的数据,但也有本地 git 可以优化发送对象的场景。默认情况下,JGit 要求发送的所有内容都是完整且可引用的。
如果您遇到这种情况,解决方法是暂时禁用接收包的可达性检查、推送,然后重新启用设置。
git.checkReferencedObjectsAreReachable = false
在GitBlit的服务端配置中添加上面的代码,就可以确保push成功。
等到push成功之后,再注释这段配置,使用#注释,以便下一次需要的时候再开启。