Git报错解决

编程入门 行业动态 更新时间:2024-10-26 23:37:22

Git<a href=https://www.elefans.com/category/jswz/34/1771188.html style=报错解决"/>

Git报错解决

        本篇主要汇总在使用 Git 进行提交和拉取文件时,遇到的问题的解决方案,以便下次查找。

1 关于使用Git出现“git Failed to connect to 127.0.0.1 port xxxx: Connection refused”的问题解决方案

1. 问题描述

        在使用 git 拉取、提交代码的时候,会出现 git Failed to connect to 127.0.0.1 port xxxx: Connection refused 的问题。

        原因:无法连接到127.0.0.1: xxx端口: 连接被拒绝。

2. 解决方案
方案一:
        思路:查询当前是否有代理,如果有就取消。

// 首先,查一下当前全局的 http 代理:
git config --global http.proxy
// 如果有代理,就取消
git config --global --unset http.proxy// 再查 https 的代理:
git config --global https.proxy
// 同样的,有就取消
git config --global --unset https.proxy

方案二

        上面的方案如果不行的话,再参考这个方案

// 首先,查一下代理:
env|grep -i proxy
// 有就取消
unset http_proxy
unset https_proxy// 再查
env|grep -i proxy
// 正常情况下是没有代理了
// 再次查询一下,如果还有的再取消

方案三

  • 修改环境变量
  • 在系统变量中找到了变量http_proxyhttps_proxy,用户变量也可以看看有没有,删除他就可以了。
  • 重启计算机。
  • 再用 git,正常了,再查env|grep -i proxy,代理没有了。

3. 小结

        代理没有了,就可以正常拉取、提交代码了。

本部分参考自:关于使用Git出现“git Failed to connect to 127.0.0.1 port xxxx: Connection refused”的问题解决方案

2 error: src refspec master does not match any.

1. 问题描述

        在将本地项目上传到新建的仓库时,出现了下图的错误:

        问题的内容是:

  • 错误:SRC ReFSPEC 主控器不匹配任何。
  • 错误:未能将某些引用推到 git@github:molimi/MyBlog.git

2. 解决方案

        其实只需要进行下面几步就能把本地项目上传到Github

  1. 在本地创建一个版本库(即文件夹),通过git init把它变成Git仓库;
  2. 把项目复制到这个文件夹里面,再通过git add .把项目添加到仓库;
  3. 再通过 git commit -m "注释内容" 把项目提交到仓库;
  4. 在Github上设置好SSH密钥后,新建一个远程仓库,通过 git remote add origin .git 将本地仓库和远程仓库进行关联;
  5. 最后通过 git push -u origin master 把本地仓库的项目推送到远程仓库(也就是Github)上;(若新建远程仓库的时候自动创建了README文件会报错,解决办法看上面)。

本部分参考自:error: src refspec master does not match any. 错误的解决办法

3 fatal: unable to access ‘https://XXX/’: OpenSSL SSL_read: Connection was reset, errno 10054

1. 问题描述

        之前关联的github库没办法上传(push)了,提示本地库不存在。于是做了

git init  # 初始化资源库
git remote-v origin https://  # 将本地库与远程库做关联,
git pull      # 先将线上的资源拉取下来。

        问题出在了git pull的时候,提示错误

fatal: unable to access '/': OpenSSL SSL_read: Connection was reset, errno 10054

        报错原因:

  • 字面意思:服务器的SSL证书灭有经过第三方机构的签署。
  • 网上信息也有的说可能是网络不稳定,连接超时导致。

2. 解决方案
        修改设置,解除SSL验证。打开 命令行工具, 输入:

git config --global http.sslVerify "false"
git config --global https.sslVerify "false"

        真实原因是DNS被污染,国内ping到的github可能是被篡改过的。自己修改hosts把github的正确IP加进去就可以了。

4 remote: error: File:1f6cc8452313 157.10 MB, exceeds 100.00 MB

1. 问题描述

        根据报错原因提示 Gitee免费用户单个文件最大100M,因此只能上传小于100M文件

(1) 查看大文件名称

$ git rev-list --objects --all | grep 9fc69e9816e94fb5bde1f86b31581d7ec12ede3b
9fc69e9816e94fb5bde1f86b31581d7ec12ede3b 2023/项目实战/NotPush/pytorch_resnet50.pth

        查出来了原来是2023/项目实战/NotPush/pytorch_resnet50.pth这个文件大于100M了。

        当然,你也可以执行下列代码:,查出历史提交的最大文件。

$ git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"

2. 解决方案

(1) 在提交中删除该文件

git filter-branch --force --index-filter  "git rm --cached --ignore-unmatch 2023\\项目实战\\NotPush\\pytorch_resnet50.pth"  --prune-empty --tag-name-filter cat -- --all
  • 若改行代码报错:Cannot rewrite branches: You have unstaged changes
  • 解决方案:先执行:git stash,再执行一遍该命令即可。

(2) 重新提交

        以强制覆盖的方式推送你的repo, 命令如下:

git push origin master --force

(3) 清理和回收空间

        虽然上面我们已经删除了文件, 但是我们的repo里面仍然保留了这些objects, 等待垃圾回收(GC), 所以我们要用命令彻底清除它, 并收回空间,命令如下:

rm -rf .git/refs/original/git reflog expire --expire=now --allgit gc --prune=now      # 执行命令 清楚本地缓存刷新

更多推荐

Git报错解决

本文发布于:2023-12-04 23:51:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1662489.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:报错   Git

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!