git爬坑不完全指北:Permission to xxx.git denied to user的解决方案

Posted keepstudying

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git爬坑不完全指北:Permission to xxx.git denied to user的解决方案相关的知识,希望对你有一定的参考价值。

  由于对之前github账户名不太满意,又不像大神一样需要两个账号绑定。所以今天注册了新账号,想把电脑绑定到新账号上,结果就踩坑了……报错如标题。

  在网上按照这个题目可以搜索出一大堆的解决方案,但都是一个思路,那就是两个账号绑定两个密钥。先不说操作过程稍微复杂点吧,关键在于这不是我想要的结果,我就要一个账号!

  于是,不妥协的我,开启了搜索→尝试→失败的死循环。终于,2个小时后,我放弃了……成功了。

  好了,闲话不多说,上解决方案。

 

  首先分析原因:

    通读报错语句的话,我们从中能读出一条信息——老账户想对新账户的仓库进行访问操作,但是被拒绝了;

    不管是add、commit都没有问题,只要push,就报错,这说明问题的原因就在push执行这一步;

    然后回忆一下,push时候,到底都干了些什么操作,会记住原来的账户信息…emmm…emmm……ding!账号登录!

    到这,恍然大悟。第一次执行push时,提示了账户的登录操作。但更换新账户再次push时,并没有再次登录的提示??喵喵喵??

    也就是说,我们还是按原账户的信息再执行push操作,所以会报错,拒绝访问;

  解决方法:

     明白了原因,接下来就是找解决方案了。说到这其实我是惭愧的,因为我最后成功时,并不知道是我当次操作生效了,还是之前的操作生效了;

    所以,我把两种方案都写出来,肯定有一种是生效的!

    

    1、git config --global credential.helper cache

          设置push登录状态保存时间为15分钟。这个大家都懂,就不接是原因了。我想说的是很多文章里都提到了

      git config --global credential.helper "cache --timeout=3600"这个命令设置自定义时间,但是我实际测

      试没起到效果。

    2、git remote rm origin与git remote add XXX

        重新设置origin值。通过git remote -v查看的话,可以看到,其实新账号的origin关联是没有错误的,毕竟add、commit操作都没有问题。

      不过这里的重新设置,也只是同样的地址,粘贴一遍,但这样会不会就让登录状态失效了?我不知道(恩,加粗不知道)。因为成功的

      时候,分不清是上一步的15分钟到时间了,还是最后这一步操作生效了……但我又重新执行了一次删除、添加,并没有让我再重新登录。所以猜测

      账号登录状态的重置跟这个没啥关系,但是又并不绝对肯定,所以暂且作为一种方案写上。

 

最后成功的话,会重新输入账号密码,然后成功上传到远程仓库,上个截图,庆祝一下~

技术分享图片

 

总结:

  发现问题、分析问题、解决问题。

  通观我解决问题的整个过程,唯一的卡点就是不明白问题发生的原因,而当我意识到是push登录问题时,剩下的也就无非是等待15分钟,然后不断尝试其他方法。所以,对于问题的解决,先找出痛点,是重中之重。最后,能不换账号还是不换的好,将问题扼杀在摇篮中……。



以上是关于git爬坑不完全指北:Permission to xxx.git denied to user的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

在Windows下解决git ERROR: Permission to XXX.git denied to user

解决:git使用git push 命令跳出remote: Permission to A denied to B的问题

git error: unable to unlink old (Permission denied)

git 报错 error: insufficient permission for adding an object to repository database ./objects

git pull error: unable to unlink old (Permission denied)

Android M(6.0) 权限爬坑之旅