解决 git pull 每次都需要用户名和密码的问题
最近从公司的 Gitlab 服务器拉代码 git pull 的时候,总是需要输入用户名和密码,非常烦人。所以想着一劳永逸的解决这个问题。
我们公司拉代码的方式是通过 https 的方式拉代码,而我在 Github 上拉代码的方式是通过 ssh。
ssh 是可以通过配置公私钥的方式来解决频繁输入用户名密码的问题。但是 https 的这种远程仓库的配置,怎么避免每次拉代码都要输入密码?这个倒是么有研究过。上网搜了一下,顺带把解决的方案贴到这里。
大致思路如下
执行
git config credential.helper store命令。这个命令用于配置 Git,将你的凭证(用户名和密码)以明文形式存储在本地系统上。运行该命令后,git 会创建或更新你的主目录(通常是
~/.gitconfig)下的.gitconfig文件。它会添加以下内容:[credential] helper = store这个配置告诉 Git 使用
store凭证助手,将你的凭证以明文形式存储在一个文件中。默认情况下,凭证会存储在主目录下的.git-credentials(即 ~/.git-credentials)文件中。但此时
.git-credentials文件并没有被创建,需要执行git pull命令触发创建。此时再执行
git pull,输入用户名和密码后,会看到.git-credentials会被创建,文件里面的内容是 http://{username}:{password}@gitlab.xxx.com。这里的username和password都是明文。之后每次再重新拉代码(
git pull)的时候,就不必重新输入密码了。
问题基本解决,但是有个风险是,你的密码是明文储存的,如果后续想要删除已经存储的凭证怎么办?可以直接删除 .git-credentials 文件。然后再运行 git config --unset credential.helper 避免之后输入密码再次生成 .git-credentials 文件。
参考地址:
关注我的微信公众号,我在上面会分享我的日常所思所想。

