Linux服务器使用git clone命令时报错的解决方案

在往GitHub上上传项目时,使用git clone xxxxx.git时候报错:
“gnutls_handshake() failed: the TLS connection was non-properly terminated”

由系统的 git 默认使用的 libcurl4-gnutls-dev 造成,可以使用openssl解决.
但是这个过程也很多坑。

依次执行:

sudo apt-get update
sudo apt-get install build-essential fakeroot dpkg-dev libcurl4-openssl-dev
sudo apt-get build-dep git #  报错了

mkdir git-openssl && cd git-openssl
sudo apt-get source git

执行到第三句sudo apt-get build-dep git又报错: you must put some 'source' URIs in your sources.list
在这里插入图片描述
因为sources.list中,默认将deb-src注释掉了,我们需要打开它然后取消注释

sudo vim /etc/apt/sources.list

打开如下图,将全部 deb-src行取消注释。这些都是下载源的网址。下图中还没有完全取消注释。
在这里插入图片描述
然后依次执行下列句子让之前的修改生效:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install build-essential

执行第二句时,会弹出选择,选保持当前的,输入N:
在这里插入图片描述
再次输入sudo apt-get build-dep git时不会报错了:
在这里插入图片描述
回到一开始,开始执行后面的

mkdir git-openssl && cd git-openssl
sudo apt-get source git

要是再报错就按照这个帖子

但是也不管用,后面也会有报错,文件打不开什么的,第二天再次使用git clone 时就没报错了。

感觉最重要的是把source.list修改,里面都是下载源,被注释了就会影响服务器连接Git。

另外后面往GitHub上发布项目时,在执行git push origin master时如果报错的话,用git status查看,是否有下面报错:

Your branch is ahead of 'origin/main' by 1 commit.
  (use "git push" to publish your local commits)

意思是本地仓库有一个提交,比远程仓库要先进一个commit. 需要先把这个commit提交到远程仓库。

我直接:git push origin main 即把项目上传到 main 分支中。

然后刷新GitHub网页,可以看到项目上传成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值