无法通过HTTPS在Linux上克隆github回购

我想在CentOS盒子上做一个简单的git clone https://github.com/org/project.git ,但是得到:

错误:所请求的URL在访问https://github.com/org/project.git/info/refs时返回错误:401

致命的:HTTP请求失败

它永远不会提示我input我的用户名/密码,只是失败。

我可以在我的Mac上进行完全相同的调用没有问题 – 我错过了什么?

答案很简单,但并不明显:

代替:

 git clone https://github.com/org/project.git 

做:

 git clone https://username@github.com/org/project.git 

或(不安全)

 git clone https://username:password@github.com/org/project.git 

(请注意,在以后的情况下,您的密码可能会被您的机器上的其他用户通过运行ps u -u $you来显示,并且默认情况下会在shell的历史logging中显示为明文)

所有3种方式在我的Mac上都能正常工作,但只有最后两种方式在远程Linux机器上工作。 (回想一下,这可能是因为我在我的Mac上设置了一个全局的git用户名 ,而在远程盒上我没有?可能是这种情况,但缺less提示input用户名的提示。 。)

没有看到这个logging在任何地方,所以在这里。

您可以手动禁用ssl verfiy,然后重试。 🙂

 git config --global http.sslverify false 

确保你有git 1.7.10或更高版本,现在提示正确input用户名和密码。 (你可以在这里下载最新版本)

我不得不指定用户名在1.7.1 git版本上工作:

 git remote set-url origin https://username@github.com/org/project.git 

正如JERC所说,确保你有一个更新版本的git。 如果您只使用默认设置,当您尝试安装git时,您将获得版本1.7.1。 除了手动下载和安装最新版本的get之外,您还可以通过向yum添加新的存储库来完成此操作。

来自tecadmin.net :

下载并安装rpmforge存储库:

 # use this for 64-bit rpm -i 'http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm' # use this for 32-bit rpm -i 'http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm' # then run this in either case rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt 

然后你需要启用rpmforge-extras。 编辑/etc/yum.repos.d/rpmforge.repo并在[rpmforge-extras]下更改enabled = 0 enabled = 1 。 该文件如下所示:

 ### Name: RPMforge RPM Repository for RHEL 6 - dag ### URL: http://rpmforge.net/ [rpmforge] name = RHEL $releasever - RPMforge.net - dag baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge enabled = 1 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 [rpmforge-extras] name = RHEL $releasever - RPMforge.net - extras baseurl = http://apt.sw.be/redhat/el6/en/$basearch/extras mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge-extras #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-extras enabled = 0 ####### CHANGE THIS LINE TO "enabled = 1" ############# protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 [rpmforge-testing] name = RHEL $releasever - RPMforge.net - testing baseurl = http://apt.sw.be/redhat/el6/en/$basearch/testing mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge-testing #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-testing enabled = 0 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 

一旦你完成了这一点,那么你可以更新与Git

 yum update git 

我不知道为什么,但他们然后build议禁用rpmforge-extras(改回enabled = 0 ),然后运行yum clean all

很可能你需要使用sudo来执行这些命令。

在一段时间后,我能够获得git 1.7.1的工作。

首先,我不得不禁用SSL,所以我可以拉:

 git config --global http.sslverify false 

然后我可以克隆

 git clone https://github.com/USERNAME/PROJECTNAME.git 

然后添加并提交后,我无法推回。 所以我做了

 git remote -v origin https://github.com/USERNAME/PROJECTNAME.git (fetch) origin https://github.com/USERNAME/PROJECTNAME.git (push) 

看拉和推地址:

这些必须用USERNAME @

 git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git 

它仍然会提示你input一个密码,你可以添encryption码

 USERNAME:PASSWORD@github..... 

但是不要这样做,因为您将密码保存在明文中以防盗窃。

由于防火墙的限制,我不能使SSH工作,所以我不得不做这个组合。

这是这个问题的最愚蠢的答案,但检查GitHub的状态 。 这个让我:)

我有同样的问题和错误。 在我的情况下,这是https_proxy没有设置。 设置https_proxy环境variables解决了问题。

 $ export https_proxy=https://<porxy_addres>:<proxy_port> 

例:

 $ export https_proxy=https://my.proxy.company.com:8000 

希望这有助于某人。