Git推送错误

12

我正在使用中心化的git工作流,其中有一个位于Windows服务器上的中央仓库,我们在开发机器上拥有工作目录。一切都进行得很顺利,直到我突然开始在推送到远程仓库时出现错误。这是错误信息:

remote: fatal: failed to write object
fatal: sha1 file '<stdout>' write error: Broken Pipe
error: failed to push some refs to 'my_central_repo'

我不知道发生了什么事情,但我需要将我的项目推送到中央代码库,任何帮助都将不胜感激。


我已经尝试了大约100次,哈哈。我重新启动了我的机器和一切。不幸的是,我不认为问题会这么简单。 - mgrenier
1
你管理Git服务器吗?你有足够的磁盘空间吗?文件/目录权限正确吗? - boly38
你试过这个吗?http://blog.lukebennett.com/2011/07/25/git-broken-pipe-error-when-pushing-to-a-repository/ - Thomas
6个回答

9
这可能是由于您的远程 git 仓库目录拥有者权限问题导致的。如果以 root 身份创建目录也会发生这种情况。
如果您这样做:
# ls -al <repo-name>.git

并查看

drwxr-xr-x .. .. root root .. .. <repo-name>.git

如果您正在尝试使用非root帐户向存储库推送,则可能是问题源。

这可以通过以下方法轻松解决:

# chown -R git:git <repo-name>.git ; ls -al
drwxr-xr-x .. .. git git .. .. <repo-name>.git

然后享受成功的git push


5

在解决问题时,我发现这篇文章解释了根本原因,但在我的情况下,是网络速度慢导致了这个问题。一旦我切换到更快的网络,推送就成功了。可能与超时有关。


1

我尝试将第一个提交推送到远程的Bitbucket存储库。在输入以下命令后出现了错误:

git push -u origin master

问题通过删除“-u”标志得到解决。

0

我仍在努力找出根本原因,但正如所料,这是一个与权限相关的错误。当我使用GitServer的管理员帐户将网络驱动器映射到我的中央存储库所在的目录时,问题得到了解决。

奇怪的是,我之前使用个人凭据映射网络驱动器并没有问题地推送到GitServer存储库,因此我不确定发生了什么导致我的用户对存储库的权限发生了变化。其他使用其他中央存储库的用户没有遇到此问题。


0

尝试将远程URL从https更改为git

git remote set-url origin git@github.com:username/reponame.git

-2

除非是与git服务器的权限问题有关(您是否具有管理员权限?),否则可能是自上次拉取以来有一些新的推送。请尝试:

git pull --rebase origin master
git push origin master

1
我相信这是与权限相关的问题,但我不确定如何解决。很奇怪,因为我登录的用户一直都能正常推送,突然间就不能了。我该如何确保我拥有管理员权限? - mgrenier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接