为什么我的Git远程网址只需要在某些系统上包含我的用户名?

时间:2016-03-12 05:54:45

标签: git github

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,如果有任何结果,我将报告结果。

2 个答案:

答案 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提示。

虽然我在这里,但我认为值得指出我发现的相关帖子: