一、背景
当我们用Git的https
做为仓库地址操作的时候。每一个对远程仓库的操作,都需要让我们输入账号和密码。如下:
root@iZwz9i66akux4rll2yvvhaZ test_laravel]# git pull
Username for 'https://gitee.com':
二、问题解决
- 提交存储账号和密码请求
此时,我们只需要进入到自己的网站根目录,输入以下命令,表示Git帮助我们存储账号和密码git config --global credential.helper store
- 重新输入一次账号和密码
第一步做完之后,只需要再次做一次远程操作,然后,完整输入一次账号和密码。这样Git就会记录的你的账号和密码信息了。后续的远程操作都不会再需要输入账号和密码了。
三、原理
执行上述操作之后,Git会在~/
目录下生成一个.git-credentials
文件。里面记录了你登录的账号和密码信息。
我的操作用户是root
,则就是在/root/.git-credentials
。里面的内容如下:
https://seek%40linsen.com:seek%40888@gitee.com
四、附加
凭证存储
这是利用Git的凭证存储
的store
模式实现的。
Git 拥有一个凭证系统来处理这个事情。 下面有一些 Git 的选项。
-
默认所有都不缓存。 每一次连接都会询问你的用户名和密码。
-
“cache” 模式会将凭证存放在内存中一段时间。 密码永远不会被存储在磁盘中,并且在15分钟后从内存中清除。
-
“store” 模式会将凭证用明文的形式存放在磁盘中,并且永不过期。 这意味着除非你修改了你在 Git 服务器上的密码,否则你永远不需要再次输入你的凭证信息。 这种方式的缺点是你的密码是用明文的方式存放在你的 home 目录下。
-
如果你使用的是 Mac,Git 还有一种 “osxkeychain” 模式,它会将凭证缓存到你系统用户的钥匙串中。 这种方式将凭证存放在磁盘中,并且永不过期,但是是被加密的,这种加密方式与存放 HTTPS 凭证以及 Safari 的自动填写是相同的。
-
如果你使用的是 Windows,你可以安装一个叫做 “Git Credential Manager for Windows” 的辅助工具。 这和上面说的 “osxkeychain” 十分类似,但是是使用 Windows Credential Store 来控制敏感信息。 可以在 https://github.com/Microsoft/Git-Credential-Manager-for-Windows 下载。
具体细节请参照官方文档