我在本地存储库中创建了一个新分支,在一些提交之后,我想将它推送到远程存储库。
git push origin new_branch
我有这个错误:
$ git push origin new_branch
计算对象:32,完成。
使用最多2个线程进行Delta压缩。压缩对象:100%(18/18),完成。
写作对象:100%(18/18),5.29 KiB,完成。总计18(delta 13),重复使用0(delta 0)
写入失败:管道损坏
致命:远程端意外挂断
致命:远程端意外挂断
当我使用$ git remote -v
时origin git@106.187.99.99:XXX.git(fetch)
origin git@106.187.99.99:XXX.git(推送)
git branch
fiberead_com$ git branch -a
* new_branch
master
remotes/origin/HEAD -> origin/master
remotes/origin/dev
remotes/origin/master
remotes/origin/online
nginx.conf
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
# multi_accept on;
}
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
# keepalive_timeout 65;
client_header_timeout 3m;
client_body_timeout 3m;
keepalive_timeout 175 120;
client_max_body_size 35m;
tcp_nodelay on;
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
有人可以帮助我吗?
我的git服务器在Linode中。我使用GITLAB而另一个项目没有这个问题。只有一个新项目,我用户'git clone'来拉我的电脑。但是当我推送代码时出错了已经发生了。
我使用的是Nginx。
我使用'$ git push origin master',也有同样的问题。
答案 0 :(得分:5)
这意味着负责收听请求的http服务器(这里的git push over http)无法完成。
要么是因为服务器上的问题:
只有所述http服务器的日志包含根本原因(例如,它可能是服务器处理过大的消息,或者是正确的问题,或者......)。
这些日志可以在etc/httpd/httpd.conf
(Apache)或/var/log/nginx/error.log
(NGiNX)中,甚至可以在gitlab中。
或者因为它从未收到OP jesktop确认为此的请求:
我找到了所有日志,但错误日志是空的 问题是网络。因为我在中国,这里有一个特殊的网络 所以VPN可以解决这个问题。
答案 1 :(得分:0)
试试这个:
git push origin feature/new_branch
并检查连接是否有效。
答案 2 :(得分:0)
致Google来的人们:六年后,这种情况仍然定期发生。当我无意中提交了一个非常大的二进制文件时(我等),我已经看到了这种情况。仅仅删除二进制文件并重新提交以解决问题还不够。由于Git的工作方式,最初保留了包含它的提交,因此大小也保持不变。解决方案是完全将有问题的提交重新计算出来。
一旦我确定了错误的提交原因,每次发生这种情况时的解决方案就变得很明确:git bisect
。对于我来说,这可能每年出现一次或两次,但并非总是如此,因为文件很大。一旦您排除了其他问题正确指出的网络问题后,对我来说解决方案便始终是相同的-将其一分为二,删除有问题的提交,然后就可以推送了。