存储密码
您可以使用以下命令告诉 git 存储您的凭据:
git config --global credential.helper store
使用这种方法,你只需要输入一次用户名和密码,git 就不会再要求它了。但请注意,您的密码将以明文形式存储,这在安全性方面并不好。
缓存密码
您也可以使用缓存来代替,它会在您在会话中输入一次密码一段时间后存储您的密码。
git config --global credential.helper cache
这更安全,因为您的密码不会存储在磁盘上 - 只是暂时存储在内存中。如果您对默认设置不满意,您可以自己设置超时:
git config --global credential.helper 'cache --timeout=600'
再一次,这并不总是理想的。
SSH 代理 - 理想的解决方案
您真正应该使用的是ssh
推送和拉取数据的协议。这将允许您使用您的私有 ssh 密钥来验证自己 - 这将由您的操作系统安装的密钥代理处理。这应该与代理一起工作而没有任何问题,所以你绝对应该试一试。
您可以通过如下设置远程 url 来进行设置:
git remote set-url origin git@github.com:<username>/<project>.git
如果您使用的是其他托管服务,例如 bitbucket,只需将“github.com”替换为您的提供商域即可。
一旦你这样做了,你将需要设置一个公钥和私钥对,用于 github 和你的计算机之间的通信。这里有一个很好的关于如何设置的教程。如果您使用的是 Linux 或 MacOSX,您只需在运行命令时按照这些步骤操作即可ssh-keygen
。
之后,您可以让 SSH 代理为您存储密码,这通常更安全。SSH 代理通常要求您在打开计算机后只输入一次密码 - 但之后它应该会自动为您完成所有操作。密码以这种方式安全存储,这与第一个以纯文本形式存储密码的解决方案不同。
您使用的 SSH 代理将取决于您的操作系统,但设置起来应该不难。对于大多数流行的 Linux 发行版,您不需要做任何事情,我在下面的评论中被告知您可以按如下方式设置 Windows:
git config --global credential.helper wincred
我从未使用过 MacOSX,所以我不能确定这是否像在基于 Ubuntu 的发行版中那样自动设置。