Git credential 凭证存储,实现Git避免用户名和密码方法
windows
git-credentials
- 创建存储GIT用户名和密码的文件(
~/.git-credentials
)
在%HOME%
目录(一般为C:\users\<username>
)中,可以创建git凭证文件(.git-credentials
),由于在Window中不允许直接创建以.
开头的文件,所以需要借助git bash
进行,操作如下:
Administrator@scloud-PC MINGW64 ~
$ pwd
/c/Users/Administrator
Administrator@scloud-PC MINGW64 ~
$ touch .git-credentials
Administrator@scloud-PC MINGW64 ~
$ vim .git-credentials
https://{username}:{password}@github.com
进入git bash终端, 输入如下命令:
Administrator@scloud-PC MINGW64 ~
$ git config --global credential.helper store
执行完后查看%HOME%
目录下的.gitconfig
文件,会多了一项:
Administrator@scloud-PC MINGW64 ~
$ cat .gitconfig
[user]
name = xiexianin
email = me@xiexianbin.cn
[credential]
helper = store
重新开启git bash
会发现git pull/push
时不用再输入用户名和密码
git branch --set-upstream-to=origin/<branch> master
git branch --set-upstream-to=origin/master master
_netrc
在windows中添加一个HOME
环境变量,变量名:HOME
,变量值:%USERPROFILE%
进入%HOME%
目录,新建一个名为_netrc
的文件,文件中内容格式如下:
machine {git account name}.github.com
login <your-usernmae>
password <your-password>
重新打开git bash即可,无需再输入用户名和密码
Linux
# 配置存储密码
$ git config --global credential.helper store
# 配置用户信息
$ git config --global user.name xiexianbin
$ git config --global user.email me@xiexianbin.cn
# 配置文件
$ cat ~/.gitconfig
[credential]
helper = store
[user]
name = xiexianbin
email = me@xiexianbin.cn
$ git clone https://github.com/abc/xyz.git
Cloning into 'xyz'...
Username for 'https://github.com': xiexianbin
Password for 'https://xiexianbin@github.com':
...
$ cat ~/.git-credentials
https://xiexianbin:<token>@github.com
F&Q
提交时 fatal unable to get credential storage lock File exists
- 可能原因
credential.helper
有重复项,采用如下命令排查(通过如 git config --system --unset credential.helper
修复)
git config --local -l
git config --global -l
git config --system -l
- 由于某种原因
~/.git-credentials.lock
未正常清理,手动删除
- 文件系统只读权限,此时不影响使用