Git credential 凭证存储

发布时间: 更新时间: 总字数:639 阅读时间:2m 作者: IP上海 分享 网址

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 Config 内容

进入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%

  • 创建git用户名和密码存储文件

进入%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 未正常清理,手动删除
    • 文件系统只读权限,此时不影响使用
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数