【问题标题】:Cannot push to github repo无法推送到 github 仓库
【发布时间】:2011-07-26 01:28:57
【问题描述】:

我的仓库: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,我输入了正确的密码,但我收到了这个错误。

【问题讨论】:

  • 您是否尝试过使用 SSH 密钥?
  • 我已经在我的地方屏蔽了它。

标签: git version-control github push


【解决方案1】:

我在使用正确的用户名和密码推送我的来源时遇到了类似的问题。原来我打开了 2-factor Authentication 而忘记了。如果您启用了 2 因素身份验证,您将需要创建一个特定于应用程序的密码来推送您的存储库。 https://help.github.com/articles/creating-an-access-token-for-command-line-use

【讨论】:

  • 这就是票。显然,一旦您启用 2 因素身份验证,它就不再允许基于密钥的身份验证(我想这是有道理的,因为它只是一个因素)
  • 以防万一不清楚,这里生成的令牌需要用来代替你的密码。
  • 我得到了访问令牌,现在怎么办?
  • @Marian07:我知道我回复迟了,但如果您没有找到答案,您必须提供个人访问令牌来代替您的密码。例如,如果您在命令行中执行“git push origin master”,则当您被要求提供 GitHub 密码时,请提供生成的个人访问令牌。
【解决方案2】:

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

【讨论】:

  • 使用 mypass2011^@: 作为你的密码,你就会知道你将无法推送
  • 你联系过 GitHub 吗?好像bug还在。
  • 我最近将我的 github 帐户密码更改为包含 '.'和 '!'字符和 https 身份验证停止工作。这是愚蠢的。
  • 在我的情况下,用户名是错误的。只是首字母大写而不是小写。
【解决方案3】:

据我了解,github.token(和 github.user)不被 git HTTP 传输使用 - 它们仅用于使用 GitHub API 的其他工具,such as GitX and GitNub

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

【讨论】:

  • 我刚刚发现如果您的通行证是“mypass2011^@:”,我无法使用 https 进行 git push。听起来很奇怪,但有人可以确认吗?
  • 我也有类似的问题;我没有想到使用 SSH 密码不适用于 HTTPS(尽管事后看来,这绝对是显而易见的)。感谢您的澄清!
【解决方案4】:

我刚才也遇到了同样的问题。显然,当您在命令行中使用 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

【讨论】:

    【解决方案5】:

    我遇到了与之前描述的相同的问题。无论我尝试了什么,#¤" 的密码似乎都不起作用。

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

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

    【讨论】:

      【解决方案6】:

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

      【讨论】:

      • 你知道这是为什么吗?
      • 对我来说失败了 :( 但感谢您让我知道 eshell 的存在!
      【解决方案7】:

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

      【讨论】:

        猜你喜欢
        • 2021-08-22
        • 1970-01-01
        • 2012-09-24
        • 1970-01-01
        • 2013-07-12
        • 2022-10-13
        • 1970-01-01
        • 1970-01-01
        • 2014-12-22
        相关资源
        最近更新 更多