git出现的若干问题以及解决方案

这篇具有很好参考价值的文章主要介绍了git出现的若干问题以及解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

git clone:

1.Failed to connect to github.com port 443 after 21071 ms: Timed out

2.fatal:OpenSSL SSL_read: Connection was reset, erron 10054

3.想git clone特定分支怎么办?

git push:

1.fatal, ref

2.GnuTLS recv error (-110): The TLS connection was non-properly terminated

.git文件瘦身

如何查看git暂存区的文件


git clone:

1.Failed to connect to github.com port 443 after 21071 ms: Timed out

能ping通github.com,但git clone时出现:fatal: unable to access 'https://github.com/RUCAIBox/RecBole.git/': Failed to connect to github.com port 443 after 21071 ms: Timed out

出错原因:

        出现该错误是因为使用了proxy代理,所以要解决该问题,核心操作就是要取消代理;

        取消代理代码为:

                git config --global --unset http.proxy

                git config --global --unset https.proxy

2.fatal:OpenSSL SSL_read: Connection was reset, erron 10054

报错:fatal: unable to access 'https://github.com/.......': OpenSSL SSL_read: Connection was reset, erron 10054

产生原因:一般是这是因为服务器的SSL证书没有经过第三方机构的签署,所以才报错

参考网上解决办法:解除ssl验证后,再次git即可

解除验证:git config --global http.sslVerify "false"

3.想git clone特定分支怎么办?

git clone -b 分支名称 git地址

git push:

1.fatal, ref

报红字的错误,内容大致是fatal, ref...。解决方案:看是否是本地的项目的名字与仓库名字不同导致的。(踩过两次这样的坑) 

2.GnuTLS recv error (-110): The TLS connection was non-properly terminated

方法一(亲测有用):

在终端中按以下步骤输入:

sudo apt-get install build-essential fakeroot dpkg-dev -y
sudo apt-get build-dep git -y
sudo apt-get install libcurl4-openssl-dev -y
cd ~
mkdir source-git
cd source-git/
apt-get source git
cd git-2.*.*/
sed -i -- 's/libcurl4-gnutls-dev/libcurl4-openssl-dev/' ./debian/control
sed -i -- '/TEST\s*=\s*test/d' ./debian/rules
dpkg-buildpackage -rfakeroot -b -uc -us
sudo dpkg -i ../git_*ubuntu*.deb

即使中间出了错也不要理会,全部执行完再次push,成功!

方法二(对我这种情况没起作用):

sudo apt install apt-transport-https

方法三(对我这种情况没起作用):

依次执行

apt-get install gnutls-bin
git config --global http.sslVerify false
git config --global http.postBuffer 1048576000

.git文件瘦身

背景:

        有时候我们不经意间会把一些不必要的大文件上传到github上,而git为了方便之后的回滚会记录这些改变,这样会导致我们的.git文件会很大,如果文件中存在大文件,就会导致:就算我们把它删了重新提交,.git 文件夹依然会占用较大的空间。.git占空间大的话会很影响git clone的速度

        如何解决这个问题呢?其实,Git 已经为我们提供了解决方案,就是被称为核弹级的命令 filter-branch。这个命令可以用来修改历史提交记录,把不需要的文件永久地从历史记录中删除

方法如下:

首先,我们需要找出大文件。

1、找出排名前 10 的 pack 记录,命令如下:

git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -10

看到如下信息: 

b4f24922704061dd41791c3fa138535bdd64047c blob   12159456 10562199 116259793
27017d5df3c9b05786568b1f85863f9f008a464f blob   12160016 10558102 138991863
7009fc1de527e8670e59cf291c659d2541b55188 blob   12707936 11223144 412145772
1cf58693e816034bd210edd0c73a3ab158a8f27a blob   13535824 1480718 90483581
8406e9a6b0dd22381e6bdc1312b293ba60084fd6 blob   13703424 12169871 126821992
e0f54b006ee5fc3ead71d503c7014ed407d08d4f blob   13878960 12302651 423368916
1d168908ee7a0c1fa158038e9134a1155f0e35e0 blob   13964768 10103585 377394839
3cb667151ef9338aacda90e3d66eb916b8a1128a blob   14946592 1608505 88867011
3a8e3688bd4d355174f70915cadbc3ebe4393f7c blob   14990160 12956157 388455577
70c27b00ecf865a97a5b107403d1fc36f5154266 blob   16177592 3269692 74912525

最后一条就是最大的一条记录,70c27b00ecf865a97a5b107403d1fc36f5154266是它的 id。
2、找出该记录对应的文件:

git rev-list --objects --all | grep 70c27b00ecf865a97a5b107403d1fc36f5154266 

 可以看到如下文件信息:

2ec0deab6d9e97802ace6874634ecfa9de944bc5 data/nnie_model/vehicle/person_bike_car.wk

这个文件是模型文件,而且还有其他更多的模型文件,都可以移除。
3、将该文件从历史记录中移除:

git log --pretty=oneline --branches -- data/nnie_model/vehicle/person_bike_car.wk
或者通过对整个文件夹移除,vehicle/下的所有文件会被移除
git log --pretty=oneline --branches -- data/nnie_model/vehicle/*

4、重写所有 commit,将该文件从 Git 历史中完全移除:

移除单个文件
git filter-branch --index-filter 'git rm --cached --ignore-unmatch  data/nnie_model/vehicle/person_bike_car.wk' -- --all
移除整个目录里的所有文件
git filter-branch --index-filter 'git rm --cached --ignore-unmatch data/nnie_model/vehicle/*' -- --all

需要注意的是,此处可能会报错

出现这个错误

Cannot rewrite branches: You have unstaged changes

 

解决方案:执行git stash即可解决。执行完后再次运行上述的git filter-branch....命令。

5、到这里,历史记录中已经没有该文件了。不过运行 filter-branch 产生的日志还是会对该文件有引用,所以还需要运行以下几条命令,把该文件的引用完全删除:

rm -Rf .git/refs/original
rm -Rf .git/logs/
git gc       # 清理不必要的文件并优化本地存储库
git prune    # 该句必不可少

6、这个时候,再看.git文件夹,已经小了很多了。然后就可以 push 代码了,不过就是需要强制 push

git push --force

如何查看git暂存区的文件

git ls-files 文章来源地址https://www.toymoban.com/news/detail-479967.html

到了这里,关于git出现的若干问题以及解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IDEA 出现问题:git提交commit时Perform code analysis卡住解决方案(git commit提交很慢)

    git提交commit时Perform code analysis卡住很久 解决方案一 1、打开 IntelliJ IDEA,进入 File - Settings(或者使用快捷键 Ctrl+Alt+S)。 2、在弹出的 Settings 窗口中,找到 Version Control - Commit Dialog 选项。 3、在右侧的窗口中,找到 Perform code analysis 选项,并取消勾选该选项。然后单击 OK 按钮保

    2024年01月16日
    浏览(66)
  • 【Vue3】Vite打包发布错误若干问题解决方案,新手遇到的问题都在这里。

    npm run build 在vite.config.js 中加入下面的代码 vite.config.js 完整代码

    2024年02月11日
    浏览(48)
  • Git出现MERGING解决方案

    这个以前解决了很多次了,分享一下 如图所示,几个小时前拉的新分支,因为线上的代码肯定是有很多人提交的,所以需要pull下来,但是 成功pull下来后,出现了如下情况 : 开始的分支显示的是 (feature/tfzk/fdd-report-20231216) 但是重新拉下代码后分支名 后面多了MERGING 出现MER

    2024年01月18日
    浏览(42)
  • 微服务: 00-rabbitmq出现的异常以及解决方案

    目录 前言: 问题概述:  1. rabbitmq初始安装配置异常  - 1.1 rabbitmq报您与此网站连接不是私密连接 ---1.1.1 上述问题解决方案 --- 1.1.2 依次执行下面代码  - 1.2 解决用户的No access情况 - 1.2.1 使用设置的账号密码进行登录  - 1.2.2  点击 Admin功能 查看用户列表  - 1.2.3 查看用户情况情

    2024年02月13日
    浏览(30)
  • npm install 包,提示安装成功,但是项目目录中没有出现node_modules的解决方案

    npm install 包,没有报错,提示安装成功,但是项目中没有出现 node_modules ,也没有安装的包, package.json 中也没有任何依赖包记录 创建一个新的项目后,终端输入 npm install 后发现只出现了添加文件成功的提示,而文件夹下并没有创建新的 node_modules 。 这里是因为我们的包都装

    2024年02月12日
    浏览(79)
  • git 提交出现 Updates were rejected 解决方案记录

    git remote add 添加一个远程地址 但提交出现以下报错 VBNET 复制 全屏 解决 也就是说,如果您确定处于分离状态的master版本是您真正想要保留的版本,那么您可以通过强制将分支推送到远程来避免非快进错误: git push origin HEAD:master --force 但是,如果强制推送,则可能会给签出该

    2024年02月07日
    浏览(41)
  • SpringBoot所有单元测试出现错误以及测试过程中显示链接错误解决方案

     感觉没改什么东西,但是全部test全部标红,并且原始项目也运行不起来了出现这样的报错 最后发现是持久层忘记去加@Data注解 写这篇博客是为了记录ssm项目入门时出现的bug(遭不住了)

    2024年02月03日
    浏览(35)
  • IDEA 出现问题:.gitgnore忽略文件失效解决方案

    ❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作者🏆 ❤️技术活,该赏 ❤️点赞 👍 收藏 ⭐再看,养成习惯 Intellij IDEA使用教程相关系列 目录 在.gitgnore里已经加了 但还是没生效 要过

    2024年02月10日
    浏览(37)
  • “代理服务器出现问题,或者地址有误”解决方案

    网上查了很多方法,终于解决了,在此分享一下(前两个方法为通用方法, 都不行的话,可以试试第三种方法) 方法一 :(windows11版) 打开设置——网络和Internet——找到代理  进入后可能是手动设置代理开启了,关闭即可 方法二 :(通用版) 打开控制面板——找到网络

    2024年02月03日
    浏览(58)
  • git提交的时候出现异常“bad object HEAD”的另一种解决方案

    Git仓库是目前很主流的代码管理工具,一旦被损坏或出现异常,内心想直接吐血。 当进入到Git仓库执行命令: git status 显示: fatal: bad object HEAD 在此尝试用git checkout git reflog 等命令希望能恢复,但都是提示错误。在网上搜索大部分看到的是如下的解决方式: 但是我的代码分

    2024年02月02日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包