git push失败的问题解决

git push失败的一次经验总结

报错日志

git push 失败的日志
$ git push
Enumerating objects: 27432, done.
Counting objects: 100% (27432/27432), done.
Delta compression using up to 4 threads
Compressing objects: 100% (12287/12287), done.
Writing objects: 100% (27431/27431), 1.18 GiB | 20.36 MiB/s, done.
Total 27431 (delta 6495), reused 27429 (delta 6494)
remote: Resolving deltas: 100% (6495/6495), completed with 1 local object.
remote: Checking connectivity: 27431, done.
remote: GitLab: Push operation timed out
remote:
remote: Timing information for debugging purposes:
remote: Running checks for ref: master
remote: Checking if you are allowed to push... (4.04ms)
remote: Checking if default branch is being deleted... (11.72ms)
remote: Scanning repository for blobs stored in LFS and verifying their files have been uploaded to GitLab... (cancelled after 29152.58ms)
To gitlab.example.com:xxx/commonlibs.git
 ! [remote rejected]   master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@gitlab.example.com:xxx/commonlibs.git'

背景描述

  1. 本地的maven仓库放在了自己搭建的gitlab服务器(在本地虚拟机)上
  2. 推送分支是master
  3. 本地有较长的时间没有往服务端推送信息,导致本次push的数据量较大(1GB左右)
  4. 之前push是没有问题,本次push总是报错

问题分析

  1. 由于push的分支是master,有可能master为受保护的分支,自己没有权限。
    1. 分析:历史原因(之前在master分支推送是没有问题的)证明权限没有问题,并且在gitLab中检查了自身的权限,具有push的权限。
    2. 结论:自身具备往master分支push的权限,现在push失败跟权限没关系
  2. 往该gitLab服务器的其他仓库push数据时是成功的
    1. 分析:往其他仓库push成功的例子都是数据量小的时候
    2. 结论:可能跟数据量大有关系
  3. 观察本地gitLab服务器所在的虚拟机配置:2核2G内存,配置较低,有时操作都很卡
    1. 分析:可能跟虚拟机的配置低有关系,
    2. 结论:配置低导致push时gitLab处理超时,从而push失败。
  4. 调大虚拟机配置:2核4GB内存
    1. 分析:push成功
    2. 结论:确实是虚拟机配置低导致push失败!

结论

该问题属于偶发性问题,只有在虚拟机配置低(导致gitLab服务器处理数据过慢)、push数据量大且文件细小时才会出现。
但是该问题也属于比较典型的问题,故记录下来供学习。

git push 成功的日志

$ git push --set-upstream origin testPushError
Enumerating objects: 27432, done.
Counting objects: 100% (27432/27432), done.
Delta compression using up to 4 threads
Compressing objects: 100% (12287/12287), done.
Writing objects: 100% (27431/27431), 1.18 GiB | 20.48 MiB/s, done.
Total 27431 (delta 6495), reused 27429 (delta 6494)
remote: Resolving deltas: 100% (6495/6495), completed with 1 local object.
remote:
remote: To create a merge request for testPushError, visit:
remote:   http://gitlab.example.com/xxx/commonlibs/merge_requests/new?merge_request%5Bsource_branch%5D=testPushError
remote:
To gitlab.example.com:xxx/commonlibs.git
 * [new branch]        testPushError -> testPushError
Branch 'testPushError' set up to track remote branch 'testPushError' from 'origin'.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
git push失败可能有以下六种常见原因: 1. 权限不足:你没有权限将代码推送到该项目。这可能是因为你没有被授予推送代码的权限,或者你正在尝试将代码推送到一个只读的仓库。解决方法是联系项目管理员或仓库所有者,请求相应的权限。 2. 分支保护:该项目可能启用了分支保护功能,只允许特定的分支接受推送。如果你正在尝试将代码推送到受保护的分支,但没有相应的权限,就会出现推送失败的错误。解决方法是检查你正在推送的分支是否受到保护,并确保你有相应的权限。 3. 代码冲突:如果你的本地代码与远程仓库中的代码发生冲突,git push操作将会失败。这通常发生在多人协作开发时,多个人同时修改了同一部分代码。解决方法是先解决代码冲突,然后再进行推送。 4. 仓库不存在:你可能正在尝试将代码推送到一个不存在的仓库。请确保你输入的仓库地址或名称是正确的,并且该仓库确实存在。 5. 网络连接问题:推送失败也可能是由于网络连接问题导致的。请检查你的网络连接是否正常,并尝试重新推送。 6. 用户身份验证问题:如果你的身份验证信息不正确或过期,git push操作将会失败解决方法是使用正确的用户名和密码或访问令牌进行身份验证。 请根据具体情况检查以上六种原因,并采取相应的解决方法来解决git push失败问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值