git跳过用户名密码验证,以及配置credential help
平时我们在使用git命令时,如果使用http方式拉取代码每次都需要使用填写用户名和密码,非常的麻烦。
首次输入需要验证用户名和密码
如何才能绕过每次繁琐的填充?
如果想要绕过git的交互方式,首先需要了解git的密码存储机制。
git使用的使用是一种名叫[credential helper]的工具来完成用户名密码存储的。
可以通过git config --global credential.helper
命令来查看本机使用的哪种方式,或者查看用户目录下的.gitconfig
文件
可以通过命令git config --global credential.helper cache/store/manager-core
设置密码存储方式。
以下是[credential helper]的几种存储方式:
①cache:cache 将凭据在内存中进行短时间的缓存。使用的比较少。
②store:store通过明文的方式将用户名和密码保存到用户目录下,可以使用记事本直接打开:
如果使用这种方式,可以通过修改.git-credentials文件的方式绕过填充和密码修改,形如:https://username:password@gitee.com。如果是首次使用需要创建该文件。
git config --global credential.helper store --file=xxxxx
可以设置读取.git-credentials文件的位置。
③manager-core:如果是windows机器,可以使用名为windows凭据的[credential helper]工具,这是一种windows自带的密码管理器,非常适合存储git用户名和密码。如下图:
如果想以这种方式存储git的用户名和密码,就需要使用cmd命令了
//删除某个windows凭据 cmdkey /delete:git:https://gitee.com //添加某个windows凭据 cmdkey /generic:git:http://gitee.com /user:%username% /password:%password%
note:使用之前需要先查看[credential helper]以哪种方式存储
此外[credential helper]工具还支持配置多种存储方式。当查找特定服务器的凭证时,git 会按顺序查询,并且在找到第一个符合条件的机器时就返回。配置如下:
[credential]
helper = manager-core
helper = store --file c:\\.git-credentials
helper = cache --timeout 30000