解决repo sync ( git )报错: git: ‘remote-https‘ is not a git command

现象

在Ubuntu 18.04上下载Android源码,遇到报错:git: ‘remote-https’ is not a git command。

$ repo init -u https://android.googlesource.com/platform/manifest -b master
Get https://gerrit.googlesource.com/git-repo/clone.bundle
Get https://gerrit.googlesource.com/git-repo
git: 'remote-https' is not a git command. See 'git --help'.

apt upgrade不能解决文件

使用apt命令升级git到最新版本,不能解决这个问题。

work-around

使用GitHub或者国内的git服务,用ssh方式的下载代码是可以的,HTTPS的方式会报同样的错误。

# ok
$ git clone [email protected]:git/git.git

# error
$ git clone https://github.com/git/git.git

solution

下载git源码,在本地编译:

$ git clone [email protected]:git/git.git
$ make

看网上说需要有libcurl4-openssl-dev这个包,才能编译出git-remote-https。我的电脑已经安装,不确定这个依赖是否必须。

编译完成后,生成文件:git-remote-https,复制到git命令所在目录(或者添加到path中)

$  ll git-remote-http*
-rwxrwxr-x 4 dev dev 12796440 324 12:40 git-remote-https*
$ which git
/usr/local/bin/git
$ sudo cp git-remote-https /usr/local/bin/

再次下载代码,不再提示错误。

之前没有遇到过此类问题,不确定原因。不知道是否和Ubuntu版本有关。
指定原因的同学请提示一下。

你可能感兴趣的:(Android开发技术专栏,Linux开发,git)