当git版本低于2.0版本时,在push或clone代码时容易出现“fatal: HTTP request failed”的问题。
当前,git的最新版本是2.33.1。但是,当我按官网提示,用“apt-get install git” 安装最新版本git时,安装的永远是“1.8.2”版本。
这个问题的原因是:我的apt源太老了,需要更新,具体操作如下:
step1)sources.list 备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
step2) 编辑源列表文件
sudo vim /etc/apt/sources.list
step3)清空文件内容,添加以下源(建议增加所有三个源,避免某些库下载不到):
清华源:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe
ubuntu源:
deb http://cn.archive.ubuntu.com/ubuntu/ groovy main universe restricted multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu/ groovy main universe restricted multiverse #Added by software-properties
deb http://security.ubuntu.com/ubuntu/ groovy-security main universe restricted multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu/ groovy-security main universe restricted multiverse #Added by software-properties
deb http://cn.archive.ubuntu.com/ubuntu/ groovy-updates main universe restricted multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu/ groovy-updates main universe restricted multiverse #Added by software-properties
step4) 运行sudo apt-get update
sudo apt-get update
step5) 运行sudo apt-get upgrade
sudo apt-get upgrade
然后再执行 apt install git就能安装最新版本了。
sudo apt-get install git
其他备用方法:
方法1:用conda安装
conda install git
根据此方法我安装得到的git版本是“git version 2.19.1 ”,虽然不是最新版本,但是也解决题目中所示问题了。
方法2:下载git最新版本的安装包,手动安装。具体步骤如下:
wget https://github.com/git/git/archive/v2.33.1.tar.gz
tar zxvf v2.33.1.tar.gz
cd git-2.33.1
make configure
./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv
make all doc
make install install-doc install-html
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc
当运行 “git --version”后出现 “git version 2.33.1”时表明安装成功。
如果遇到“Makefile: recipe for target ‘xxxxx‘ failed” 等问题导致安装失败,可以执行“make clean”,然后重新安装,具体如下,
make clean
make all doc
make install install-doc install-html
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc
参考:解决git clone出现fatal: HTTP request failed问题_cynthrial的博客-CSDN博客