git:遥控器被拒绝,无法迁移对象到永久存储


git -c diff.mnemonicprefix=false -c core.quotepath=false push -v origin 
feature/xxx:feature/xxx
POST git-receive-pack (3470 bytes)
Pushing to http://xxx@stash/xxx.git
To http://stash/xxx.git
! [remote rejected] feature/xxx -> feature/xxx (unable to migrate objects 
to permanent storage)
error: failed to push some refs to 
'http://xxx@stash/xxx.git'

Completed with errors, see above.

有人可以解释如何解决此错误?我看上去像其他类似的问题,但是我找不到任何有助于弄清楚为什么被拒绝的东西 - 我实际上是在半小时之前更新了分支机构,并想推出一个我忘记包括的新文件在最初的推动中。我尝试更新开发人员,然后切换回我正在处理的功能分支,因为一些评论建议GIT试图更新其他本地分支和遥控器之间的差异,但这还没有做任何事情 - 我得到的错误完全相同像以前一样的消息。

unable to migrate objects to permanent storage通常是服务器上配置错误的结果。无论如何,您的结局很可能会改善结果。

当服务器接收git push时,接收git从发送侧获得一系列的git对象 - 符号,树木,斑点和/或标签,所有这些都构成了从执行任何人发送的内容git push。然后,发件人向您提供一个请求: *我希望您,接收器, name 这些对象带有某些特定的分支和/或标签名称,以便它们可以访问。 *

在2.11.0之前的git版本中,对象立即进入了接收器的对象数据库。然后,接收器将检查建议的名称创建或更新(例如,feature/xxx应该指向对象1234567...(,验证是否还可以,然后进行更新并回复 ok,或者完成,或使用使用特定错误,例如"不快速前进"。

在GIT版本2.11.0中,该过程已更改:输入对象放在"隔离区"中,直到接受名称更新为止。一旦接收器验证更新feature/xxx是可以的,接收器必须将对象从隔离区域移动到对象数据库中。一旦动作成功并完成了更新,您就可以得到服务器的回复。

正是从存储库中的隔离区到存储库对象数据库的这一动作正在失败。换句话说,您的推送请求没有错。相反,服务器在说:我会按照您的要求做,但是我已经摔倒了,无法修复自己。

要解决问题,控制服务器的人应登录机器并检查存储库区,特别注意文件,目录所有权和权限,磁盘配额以及其他可能影响此对象迁移过程的任何其他内容。/p>

最新更新