如何确保Git不会问我GitHub的用户名和密码?
我在GitHub上使用一个repo,每次我尝试推送东西时,它都会问我GitHub的用户名和密码。
我试过在Git中设置电子邮件上的说明,即设置Git变量github.user和github.token,但没有任何效果。
我在GitHub上使用一个repo,每次我尝试推送东西时,它都会问我GitHub的用户名和密码。
我试过在Git中设置电子邮件上的说明,即设置Git变量github.user和github.token,但没有任何效果。
今天也遇到了类似的问题。我把我的工作副本弄得一团糟,所以我决定重新命名目录,然后从github上克隆我的项目。但是在做完之后,我不得不输入密码来做任何pull/push请求,而不是像以前那样只输入一次密码。要检查你使用的是什么协议,只需运行
git config -l
,然后看一下以'remotion.origin.url'开头的那行。如果你拥有该仓库,用户名将是你的,否则就是仓库所有者的用户名。
你需要设置一个ssh-agent,你只需要对其进行一次验证。请看这个答案在SO上的方法。
我比较喜欢使用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
如果你在Windows上使用HTTPS,请尝试使用Git Credential Store - 它使用Windows Credential Store来保存你的名字和密码。
另外,如果你希望每次都有密码提示,但不是用户名,那么你可以把远程配置成HTTPS,用用户名……
git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name
之后,每次都会提示你输入密码,但不会提示你的用户名。
如果你和我一样使用2-factor auth,情况就有点不同了。因为我没有在其他地方找到好的答案,所以我在这里贴一个,也许我以后可以找到。但是你可以使用一个应用程序的访问令牌,然后使用git的凭证助手为你缓存。以下是相关的链接:
我不记得在哪里看到过这个,但当你被问到用户名时,你就会把应用访问令牌贴在那里。然后把密码留空。在我的mac上很好用。
为了防止GitHub在推送时询问密码,最好是使用SSH(git@github.com:...
)而不是HTTPS URL(https://github.com/...
),并将SSH密钥添加到GitHub账户。请看: 我应该使用哪个远程URL? ](https://help.github.com/articles/which-remote-url-should-i-use/)
否则如果你真的需要使用HTTPS,要在GitHub中缓存你的GitHub密码,你应该使用a credential helper告诉GitHub每次与GitHub对话时,都要记住你的GitHub用户名和密码。
git config --global credential.helper osxkeychain
(osxkeychain helper
是必须的), git config --global credential.helper wincred
git config --global credential.helper cache
另一种方法是在.netrc
中配置用户/密码(Windows上的~/.netrc
),例如. 如:
machine github.com
login USERNAME
password PASSWORD
使用 OAuth token Personal API token ) 推送修改,如:
git push https://4UTHT0KEN@github.com/foo/bar
相关内容:
另外,如果你使用的是Windows,你可以使用:
$ git config --global credential.helper wincred
``` &001
,你只需要再登录一次,然后git就会记住。
如果你是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 身份验证
- 用于构建代理优化的可选设置
只需下载最新版本 并安装即可。
**如何使用*
你不需要。当需要凭证时,它神奇地就能正常工作。