• 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分钟,然后不断尝试其他方法。所以,对于问题的解决,先找出痛点,是重中之重。最后,能不换账号还是不换的好,将问题扼杀在摇篮中……。

  • 相关阅读:
    如何一键部署项目&&代码自动更新
    Node服务端极速搭建 - nvmhome
    Node服务端极速搭建 -- nvmhome
    自动生成了一本ES6的书
    在linux中给你的应用做压力测试
    .NET 跨平台服务端资料
    CabArc to create or extract a cab file
    (转)什么时候要抛出异常?
    Sprint评审会议不是Sprint演示会议
    Sprint回顾大揭秘——“宝典”来了
  • 原文地址:https://www.cnblogs.com/keepStudying/p/9710436.html
Copyright © 2020-2023  润新知