无法推送到github回购

时间:2011-03-30 12:17:51

标签: git version-control github push

我的回购:https://shadyabhi@github.com/shadyabhi/learnajax.git

shadyabhi@archlinux-N210 ~/github/learnajax $ cat .git/config 
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = https://shadyabhi@github.com/shadyabhi/learnajax.git
    fetch = +refs/heads/*:refs/remotes/origin/*
shadyabhi@archlinux-N210 ~/github/learnajax $ git config -l
user.name=shadyabhi
user.email=abhijeet.1989@gmail.com
merge.tool=vimdiff
github.token=1095de7027bVVVV01cfAAAAAa5fc8f6
color.ui=auto
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=https://shadyabhi@github.com/shadyabhi/learnajax.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
shadyabhi@archlinux-N210 ~/github/learnajax $ git push -u origin master
Password: 
fatal: Authentication failed
shadyabhi@archlinux-N210 ~/github/learnajax $ 

现在,我无法进入我的回购。我已经检查了github.token与我的帐户设置相同。 Ofcoarse,我输入了正确的密码,但是我收到了这个错误。

7 个答案:

答案 0 :(得分:72)

我遇到了类似的问题,用正确的用户和密码来推动我的起源。事实证明,我已经开启了双因素身份验证而忘记了。如果您启用了双因素身份验证,则需要创建一个特定于应用程序的密码来推送您的仓库。 https://help.github.com/articles/creating-an-access-token-for-command-line-use

答案 1 :(得分:10)

如果用户名包含“某些”特殊字符,则存在一些问题(如果使用https)。

答案 2 :(得分:6)

根据我的理解,git HTTP传输不使用github.token(和github.user) - 它们只适用于使用GitHub的API的其他工具such as GitX and GitNub。< / p>

我认为“身份验证失败”错误必须是由于您输入了错误的密码。 (这应该是您的GitHub密码,而不是SSH私钥的密码。)

答案 3 :(得分:6)

我刚才遇到了同样的问题。显然,当您在命令行中使用git时,它希望您输入访问令牌而不是密码。这真的很奇怪,但它确实有效。

$ git push origin HEAD
Username for 'https://github.com':        <--- your username here
Password for 'https://t7ko@github.com':   <--- access token here O_O

PS:这是关于创建令牌的说明:https://help.github.com/articles/creating-an-access-token-for-command-line-use

答案 4 :(得分:2)

我遇到了与前面描述的问题相同的问题。使用#¤"的密码似乎无效,无论我尝试过什么。

似乎与Microsoft Office 365门户一样或多或少类似的问题,您无法使用ex。密码中的¤个字符,如果您打算使用移动设备。

Github登录适用于所有密码,在网络中...但使用任何客户端,它没有。

答案 5 :(得分:1)

如果您的密码包含特殊字符,git push将无法在终端中使用。我的解决方法是emacs,并在git push内执行eshell

答案 6 :(得分:1)

如果您的用户名或密码有特殊字符,则可以将其替换为已编码的字符 例如,如果您的密码是“test @ 2010”,则将其写为“test%402010”,config命令将如下所示 git config remote.origin.url https://{username}:test%402010@github.com/{repo_username}/{repo_name}.git

相关问题