Cliff关于我原始问题的注释是我在GitHub上有一个论文项目回购,我使用多台机器来访问回购的阅读和写作。我有我的家用台式机,我的笔记本电脑,我的教授正在他的机器上使用回购,我们有我们的生产"服务器。我们通过Win7,Win8.1和Ubuntu 14.04在我们的个人计算机上使用这个仓库没有任何问题。在所有这些系统中,我们使用以下远程URL:
https://github.com/[my-user-name]/thesis.git
......它非常适合拉动和推动我们的回购。但是,在生产服务器上,使用CentOS 6.x(不确定是否重要)我们收到错误403 Forbidden,甚至没有机会尝试提供用户名或密码。经过一段时间的故障排除(总计n00b)后,我终于发现在CentOS机器上只有我必须使用远程URL:
https://[my-user-name]@github.com/[my-user-name]/thesis.git
为什么只有我们机器的一个就是这种情况?
更新
VonC的回答有助于理解问题的根源。尽管yum update
报告它是最新的,但我在CentOS 6.x上的Git版本远远落后于当前版本。
众所周知,CentOS回购已落后于最新的软件包。使用Git作为我的例子,最新版本的Git I可以使用CentOS 6基础存储库是1.7.1,它是方式,在当前版本的Git之后。我尝试过多种解决方案,包括VonC下面列出的有用答案,例如使用rpmforge
存储库覆盖基础并安装较新版本的Git,以及此处未列出的其他版本,全部为no无济于事。我的下一步是尝试从源代码构建Git,如果有任何结果,我将报告结果。
答案 0 :(得分:3)
如GitHub帮助页面" HTTPS cloning errors"中所述,这是因为您的CentOS 6.x有一个旧的git版本。 (键入git --version
确认)
如果您可以在那里升级git,则无需将用户名附加到网址 如果您无法升级,请更改远程网址以添加您的用户名确实是一种解决方法。
git remote set-url origin https://yourusername@github.com/user/repo.git
您还可以尝试为任何 github网址添加您的用户名:
git config --global credential.https://github.com.username YOUR_USERNAME
但是如果git太旧了,那么最后一个命令甚至可能都不受支持。
答案 1 :(得分:1)
提供额外的答案,以减少其他人的麻烦。
从源头构建并不像听起来那么难。这里不需要描述这些步骤。相反看看:
如果想要特定的git版本,请查看:
安装指南将记录包装必需品。根据我的经验,需要以下软件包,但没有讨论:
yum install gettext asciidoc xmlto # 'make doc' requirements
yum install libcurl-devel
libcurl-devel
终于解决了用户名/密码提示问题。 1.8,1.9和2.9所有内置的精细w / out libcurl-devel然而我无法推送到不包含我的用户ID的http远程URL。使用libcurl-devel
,会出现用户/ pw提示。
虽然我在这里,但我认为值得指出我发现的相关帖子: