导航菜单
首页 » 资讯 » 正文

git push的时候没有权限问题的解决办法

这篇文章翻译了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)

二维码