我把我的工作推到一个远程git存储库。
每次推送都会提示我输入用户名和密码。我想避免它的每一个推送,但如何配置以避免它?
我把我的工作推到一个远程git存储库。
每次推送都会提示我输入用户名和密码。我想避免它的每一个推送,但如何配置以避免它?
当前回答
只是想指出上面说过几次的解决方案:
git config credential.helper store
在此之后,您可以使用任何需要密码的命令。你不需要用力。之后,你就不需要再输入你的用户名/密码了。
其他回答
你必须设置一个SSH私钥,你可以看看这个页面,如何在Mac上进行设置,如果你在linux上,指南应该是差不多的,在Windows上你需要像MSYS这样的工具。
看起来,至少在Windows上使用TortoiseGIT时,可以创建SSH密钥并将其传输到GIT服务器,只需使用:
> ssh-keygen.exe
> ssh-copy-id [username]@[GIT_server]
1. 生成SSH密钥
Linux -麦克
打开终端创建ssh密钥:
cd ~ #Your home directory
ssh-keygen -t rsa #Press enter for all values
对于Windows
(只有当提交程序能够使用证书/私有和公共ssh密钥时才有效)
使用Putty Gen生成密钥 导出为打开的SSH密钥
下面是关于上述步骤的腻子生成的演练
2. 将SSH密钥与远程存储库关联
这一步不同,取决于遥控器的设置方式。
如果它是一个GitHub存储库,你有管理权限,进入设置并单击“添加SSH密钥”。复制~/.ssh/id_rsa的内容。pub到标记为“Key”的字段中。 如果您的存储库是由其他人管理的,请将您的id_rsa.pub交给管理员。 如果您的远程存储库由您的管理,您可以使用此命令,例如: scp ~ / . ssh / id_rsa。酒吧YOUR_USER@YOUR_IP: ~ / . ssh / authorized_keys / id_rsa . pub
3.将远程URL设置为支持SSH 1的表单
如果您已经执行了上述步骤,但仍然得到密码提示,请确保表单中有您的回购URL
git+ssh://git@github.com/username/reponame.git
而不是
https://github.com/username/reponame.git
要查看您的回购URL,运行:
git remote show origin
你可以用以下方法更改URL:
git remote set-url origin git+ssh://git@github.com/username/reponame.git
[1]本节结合了Eric P的答案
只是想指出上面说过几次的解决方案:
git config credential.helper store
在此之后,您可以使用任何需要密码的命令。你不需要用力。之后,你就不需要再输入你的用户名/密码了。
使用Git存储库进行永久身份验证,
运行以下命令启用凭据缓存。
$ git config credential.helper store
$ git push https://github.com/repo.git
Username for 'https://github.com': <USERNAME>
Password for 'https://USERNAME@github.com': <PASSWORD>
Use还应该指定缓存过期,
git config --global credential.helper 'cache --timeout 7200'
启用凭据缓存后,它将被缓存7200秒(2小时)。
注意:凭据帮助程序将未加密的密码存储在本地磁盘上。