2010-10-14 17:17:28 +0000 2010-10-14 17:17:28 +0000
174
174

如何确保Git不会问我GitHub的用户名和密码?

我在GitHub上使用一个repo,每次我尝试推送东西时,它都会问我GitHub的用户名和密码。

我试过在Git中设置电子邮件上的说明,即设置Git变量github.user和github.token,但没有任何效果。

答案 (12)

215
215
215
2011-08-08 22:36:29 +0000

今天也遇到了类似的问题。我把我的工作副本弄得一团糟,所以我决定重新命名目录,然后从github上克隆我的项目。但是在做完之后,我不得不输入密码来做任何pull/push请求,而不是像以前那样只输入一次密码。要检查你使用的是什么协议,只需运行

git config -l

,然后看一下以'remotion.origin.url'开头的那行。如果你拥有该仓库,用户名将是你的,否则就是仓库所有者的用户名。

34
34
34
2010-10-14 17:28:04 +0000

你需要设置一个ssh-agent,你只需要对其进行一次验证。请看这个答案在SO上的方法。

31
31
31
2013-12-03 22:40:15 +0000

如果你使用的是HTTPS而不是SSH,你可以这样做:

找到你的远程URL (remotion.origin.url) 2. 你的远程URL会是这样的。**https://{USERNAME}@github.com/{USERNAME}/{REPONAME}.git*

  1. 执行此命令。
26
26
26
2014-11-21 04:27:04 +0000

我比较喜欢使用HTTPS,我觉得这比设置ssh密钥更容易,更安全。

使用HTTPS,你可以用下面的方法防止git在github远程询问你的用户名:

git config --global url."https://yourusername@github.com".insteadOf "https://github.com"

,至少可以减少git询问密码的频率:

git config --global credential.helper 'cache --timeout=28800'

,其中28800是8小时。我用这个设置只输入一次密码,当我开始工作的时候。

之后,你的~/.gitconfig

[url "https://yourusername@github.com"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

来源: http://git-scm.com/docs/git-credential-cache http://git-scm.com/docs/git-config

6
6
6
2014-02-23 11:54:29 +0000

如果你在Windows上使用HTTPS,请尝试使用Git Credential Store - 它使用Windows Credential Store来保存你的名字和密码。

6
6
6
2010-10-14 19:45:54 +0000

当你为github设置ssh密钥时,如果不是你的默认密钥,你需要在你的~/.ssh/config

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa
```中添加一个部分
5
5
5
2013-08-11 03:17:37 +0000

另外,如果你希望每次都有密码提示,但不是用户名,那么你可以把远程配置成HTTPS,用用户名……

git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name

之后,每次都会提示你输入密码,但不会提示你的用户名。

2
2
2
2014-09-25 19:45:49 +0000

如果你和我一样使用2-factor auth,情况就有点不同了。因为我没有在其他地方找到好的答案,所以我在这里贴一个,也许我以后可以找到。但是你可以使用一个应用程序的访问令牌,然后使用git的凭证助手为你缓存。以下是相关的链接:

我不记得在哪里看到过这个,但当你被问到用户名时,你就会把应用访问令牌贴在那里。然后把密码留空。在我的mac上很好用。

2
2
2
2016-06-19 21:27:34 +0000

使用SSH

为了防止GitHub在推送时询问密码,最好是使用SSH(git@github.com:...)而不是HTTPS URL(https://github.com/...),并将SSH密钥添加到GitHub账户。请看: 我应该使用哪个远程URL? ](https://help.github.com/articles/which-remote-url-should-i-use/)

a credential helper

否则如果你真的需要使用HTTPS,要在GitHub中缓存你的GitHub密码,你应该使用a credential helper告诉GitHub每次与GitHub对话时,都要记住你的GitHub用户名和密码。

  • Mac: git config --global credential.helper osxkeychain (osxkeychain helper是必须的),
  • Windows: git config --global credential.helper wincred
  • Linux和其他: git config --global credential.helper cache

007

另一种方法是在.netrc中配置用户/密码(Windows上的~/.netrc),例如. 如:

machine github.com
login USERNAME
password PASSWORD

OAuth

使用 OAuth token Personal API token ) 推送修改,如:

git push https://4UTHT0KEN@github.com/foo/bar

相关内容:

1
1
1
2016-06-05 12:21:50 +0000

询问用户名对我来说很烦人,但询问密码也很好,因为它可以确保你真的想公开你的修改…..

所以我只是在我的".gitconfig “中添加了这样的内容

[url "https://myusername@github.com"]
    insteadOf = https://github.com
1
1
1
2016-04-05 14:31:43 +0000

另外,如果你使用的是Windows,你可以使用:

$ git config --global credential.helper wincred
``` &001 

,你只需要再登录一次,然后git就会记住。
0
0
0
2016-07-07 13:37:29 +0000

如果你是Windows系统,请使用 Git Credential Manager for Windows

本项目包括

  • 在 Windows Credential Store 中安全存储密码
  • 支持 Visual Studio Team Services 的多因素认证
  • 支持 GitHub 的双因素认证
  • 支持 Visual Studio Team Services 和 GitHub 的个人访问令牌生成和使用支持
  • 支持 Visual Studio Team Services 和 GitHub 的个人访问令牌 支持由 Azure Directory 支持的 Visual Studio Team Services 的非交互式模式
  • 用于 Team Foundation Server 的 Kerberos 身份验证
  • 用于构建代理优化的可选设置

只需下载最新版本 并安装即可。

**如何使用*

你不需要。当需要凭证时,它神奇地就能正常工作。