将更改推送到Git不起作用

时间:2016-08-13 20:12:47

标签: windows git github heroku

每次我想提交命令" git push heroku master"我在PowerShell中被要求输入凭据。当我输入heroku凭证(默认情况下连接到git)时,我收到错误消息。

但是,当我在我的主目录中输入netrc文件中包含的凭证时,那就是函数。但是我认为密码是哈希的。每次我想将更改推送到git时,如何避免输入凭据?

更新:

PS C:\Users\Dragan\heroku_workspace\python-getting-started> git push heroku master
github --credentials get: github: command not found
Username for 'https://git.heroku.com': my-email@hotmail.com
Password for 'https://my-email@hotmail.com@git.heroku.com':
github --credentials erase: github: command not found
remote: !       WARNING:
remote: !       Do not authenticate with username and password using git.
remote: !       Run `heroku login` to update your credentials, then retry the git command.
remote: !       See documentation for details: Https://devcenter.heroku.com/articles/http-git#authentication
fatal: Authentication failed for 'https://git.heroku.com/mysterious-river-71834.git/'

3 个答案:

答案 0 :(得分:2)

常见错误是使用默认值(HTTPS)而不是SSH进行克隆。您可以通过转到存储库,单击URL字段左侧的ssh按钮并更新原始遥控器的URL来纠正此问题,如下所示:
git remote set-url origin git@github.com:username/repo.git

或者如果您的存储库已经点击绿色按钮CLONE OR DOWNLOAD并选择使用SSH

启用SSH身份验证

$ heroku create --ssh-git

将高级HTTPS调用重定向到SSH ( If you want to always use SSH Git with Heroku on a particular machine)

$ git config --global url.ssh://git@heroku.com/.insteadOf https://git.heroku.com/

生成公钥:

ssh-keygen -t rsa在第一个提示符处按Enter键以使用默认文件位置。接下来,键入密钥的安全密码。

答案 1 :(得分:0)

如果您使用的是v1.9.3或更高版本Git for Windows,则可以执行以下操作

git config --global credential.helper wincred

请注意,此机制会将您的用户名/密码存储在Windows Credential Store中。

在相对较新的版本中,Git Credential Manager for WindowsGit for Windows捆绑在一起并默认启用,您可能必须覆盖Heroku的credential.helper配置。 GCM似乎是为VSTS和GitHub设计的,我不知道它将如何与其他服务器一起运行。

答案 2 :(得分:0)

为我工作:

  1. 使用Windows命令提示符heroku login运行cmd.exe。这会将您的API密钥丢弃到_netrc,此时您可以打开cygwin或git bash并执行您需要的任何操作

  2. .gitconfig移除helper = manager行,以便不再将其注册为凭据帮助程序并停止显示。

    (在C:\Users\username\.gitconfig

  3. 在用户目录的Windows 7上将_netrc文件重命名为.netrc:

    cd %home%

    REN _netrc .netrc

  4. 请参阅:

    'git push heroku master' is still asking for authentication

    https://github.com/heroku/cli/issues/84#issuecomment-170689175