这篇文章翻译了git关于凭证的介绍,里面详细说明了git是如何寻找用户输入过的用户名和密码的,可以看一下明白git记录密码的原理。如果你不想看这篇文章,那么大概理解几个概念就好:
git去找系统是否缓存了用户的密码有三种策略:去缓存中找,去磁盘中找,去钥匙串中找。/Users/xxx/.文件中(这个文件如果没设置过git的全局配置可能会不存在),配置了git到底选择哪个策略去找用户名和密码。
3.通过编辑.文件,. = store / cache / 来修改git缓存策略。
理解了上面的概念后可以执行这个命令查看自己系统支持的(凭证),
git help -a | grep
得到结果:
然后可以执行
git –list
查看自己电脑的git的全局配置,可以看到. =(你自己电脑的配置)
如果你转换到git项目的文件夹里再使用git –list可以看到对应项目的配置信息,红色是电脑的全局凭证配置,绿色的是当前git项目的凭证配置(可以多个)
三,解决问题
1.清空配置
知道了这些之后,再解决这个问题就简单了,既然git是依靠.配置去找用户名密码,那我直接不用这个配置不就要求重新输入用户名和密码了吗?打开/ Users / xxx /.文件,如果显示隐藏文件后还是找不到这个文件,那么可以使用以下任意的命令,成功后会在你的主路径下出现这个文件,
执行这些命令后就能生成.配置文件,然后文本编辑器打开.文件,清除里面的命令行生成的内容。
如果你的电脑本来就有.文件,找到下面这句话删除,保存退出。
这个时候输入命令
查看本机的凭证是否已经被清空。
如果输入了git .命令之后还是出现了,store或者cache等,说明git的配置还是没有被清空,我参考了上这个问题有人给了这样一个命令查看.所在的文件目录(可能一个电脑上有多个的.文件),
如果你的苹果上还有Xcode中的话,那么Xcode的中还会有一个的.文件,找出他然后打开,清空[凭证。
再次输入
git .
如果没有任何反应,那么凭证就是已经清空了,这个时候你无论在任何依托git的代码托管网站上推都都要求你输入用户名和密码了,而且每次都会要求你输入,是不是又有新的烦恼了呢?
2.重新配置
理解了git保存密码的原理,那我们可以按照自己的想法设置了,如上所述,可以设置成cache,store,,这里我说下保存在磁盘中(store)和钥匙串中()两种方式。
配置成店
命令
git – . store
或者/Users/xxx/.打开.直接修改文件. =存储
然后第一次推送的时候会提示输入用户名密码,输入完成之后/ Users / xxx /文件夹下会生成一个新的文件.git-,双击打开,里面保存了你的用户名密码等信息:
用户名:密码@网址
但是这种储存方式,在本地只会储存一个用户名和密码,例如我本地的.git的凭据文件的内容是
用户名1:密码
那我如果想推到上,又要重新输入用户名密码,你可以再次在.git-文件中添加一个url,格式是一样的,这次的用户名和密码改成你的用户名和密码
用户名2:密码
注意:如果在设置成全球商店之前/用户/ xxx /文件夹中如果已经有了.git-文件,最好先删除,防止系统自动去那里寻找用户名密码。
配置成
命令
git – .
也或者/Users/xxx/.打开.直接修改文件。
这个时候git是从你的钥匙串中访问存储的密码,同理如果第一次在钥匙串中没有找到用户名密码,则要求你输入,输入之后下次就不用再次输入啦。
与商店方式不同的是(你的每个平台用户名和密码都不一样):
假如第一次push到,那么记录了的用户名密码,
第二次你想推送编码,那么没有编码只是店的方式 我们需要手动添加url,这里不用了。
我们可以查看Mac上的钥匙串,推一次后就会新出一个对应网站的钥匙串,你也可以双击访问,查看密码。
注意:如果在/ Users / xxx /文件夹中已经有了.git-文件,要先删除,否则系统自动去那里寻找用户名密码。
转载地址:https :///p/
评论(0)