我最近切换到将我的存储库同步到GitHub上的https://(由于防火墙问题),它每次都会要求输入密码。
有没有办法缓存凭据,而不是每次git推送时都进行身份验证?
我最近切换到将我的存储库同步到GitHub上的https://(由于防火墙问题),它每次都会要求输入密码。
有没有办法缓存凭据,而不是每次git推送时都进行身份验证?
当前回答
克隆存储库repo后,可以编辑repo/.git/config并添加如下配置:
[user]
name = you_name
password = you_password
[credential]
helper = store
这样就不会再次要求您输入用户名和密码。
其他回答
我在MacOS上也遇到了这个问题,以下命令对我有效:
rm -rf ~/.git-credentials
这是一种强制方法,可以真正删除所有git凭据。下次我使用push命令时,瞧:系统会提示我输入用户名和密码(或令牌)。
我并没有立即意识到我需要先下载助手!我在Atlassian的永久认证Git存储库中找到了credential.helper下载。
报价:
如果您想在OS X上使用带有凭据缓存的Git,请执行以下步骤:
下载二进制git凭证osxkeychain。
运行以下命令以确保二进制文件可执行:
chmod a+x git-credential-osxkeychain
将其放在/usr/local/bin目录中。
运行以下命令:
git config --global credential.helper osxkeychain
如果您正在使用osxkeychain,并且有一个令牌过期,并希望更新它,请执行以下步骤:
在终端中运行,然后按enter键两次。
git credential-osxkeychain erase
host=github.com
protocol=https
现在应该会提示您输入用户名/密码。然而,有时这似乎并不“需要”,你必须继续重新进入。
如果是,请重新启动计算机。现在,下次运行git命令并输入用户名/密码时,它将被保存。
只需将登录凭据作为URL的一部分:
git remote rm origin
git remote add origin https://username:mypassword@github.com/path/to/repo.git
注意:我不建议使用这种方法,但如果你很匆忙,而其他方法都不奏效,你可以使用这种方法。
为了安全起见,最好使用凭据,但您可以使用缓存将其保存一段时间:
git config --global credential.helper cache
git config credential.helper 'cache --timeout=3600'
您的凭据将保存3600秒。