我正在使用集中式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'
我无法弄清楚发生了什么,但我需要将我的项目推送到中央仓库,任何帮助都将不胜感激。
答案 0 :(得分:3)
这也可能是由于远程git repo目录上的所有者权限问题所致。当以根用户身份创建目录时,也会发生这种情况。
如果愿意
# 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
答案 1 :(得分:0)
除非它是git服务器的权限问题(你有管理员权限吗?),否则可能是因为你上次提取了一些新的推送。尝试:
git pull --rebase origin master
git push origin master
答案 2 :(得分:0)
我仍在试图找出根本原因,但怀疑是与权限相关的错误。当我使用我的GitServer的管理员帐户将网络驱动器映射到我的中央存储库所在的目录时,它解决了这个问题。
奇怪的是,我以前推送到我的GitServer repo并没有使用我的个人凭据映射的网络驱动器的问题所以我不确定发生了什么改变了我的repo对我的用户的权限。没有其他使用其他中央回购的用户遇到过这个问题。
答案 3 :(得分:0)
在解决问题时,我发现this article解释了根本原因,但在我的情况下,导致此问题的网络很慢。一旦我转移到更快的网络推进ween通过。可能与超时有关。
答案 4 :(得分:0)
尝试将远程 url 从 htpps 更改为 git
git remote set-url origin git@github.com:username/reponame.git
答案 5 :(得分:0)
这是由于 Windows 造成的,它发生在我身上,相信我,在尝试堆栈溢出建议、github 文档以及互联网上所有与此相关的该死的东西后,我真的哭了。然后我将文件移动到 linux ,它在我的 vm..and 繁荣..它就像 milfhole 一样进入 repo
答案 6 :(得分:0)
就我而言,我确实希望将第一次提交推送到远程 bitbucket 存储库。 cmd后出现错误:
git push -u origin master
问题通过删除“-u”标志得到解决