在往GitHub上上传项目时,使用git clone xxxxx.git时候报错:
“gnutls_handshake() failed: the TLS connection was non-properly terminated”
由系统的 git 默认使用的 libcurl4-gnutls-dev 造成,可以使用openssl解决.
但是这个过程也很多坑。
依次执行:
sudoapt-get update
sudoapt-getinstall build-essential fakeroot dpkg-dev libcurl4-openssl-dev
sudoapt-get build-dep git# 报错了mkdir git-openssl &&cd git-openssl
sudoapt-getsourcegit
执行到第三句
sudo apt-get build-dep git
又报错:
you must put some 'source' URIs in your sources.list
因为sources.list中,默认将deb-src注释掉了,我们需要打开它然后取消注释
sudovim /etc/apt/sources.list
打开如下图,将全部 deb-src行取消注释。这些都是下载源的网址。下图中还没有完全取消注释。
然后依次执行下列句子让之前的修改生效:
sudoapt-get update
sudoapt-get upgrade
sudoapt-getinstall build-essential
执行第二句时,会弹出选择,选保持当前的,输入N:
再次输入
sudo apt-get build-dep git
时不会报错了:
回到一开始,开始执行后面的
mkdir git-openssl &&cd git-openssl
sudoapt-getsourcegit
要是再报错就按照这个帖子
但是也不管用,后面也会有报错,文件打不开什么的,第二天再次使用
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网页,可以看到项目上传成功。
版权归原作者 鱼在树上飞 所有, 如有侵权,请联系我们删除。