原创

【解决方案 九】git push不能执行,无权限提交项目

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://tianmaolin.blog.csdn.net/article/details/89467079

最近遇到一个比较难缠的问题是git push不能提交到远程,总结了下各种可能,列到下边来。

1 检查SSH秘钥

首先要检查的就是自己是否有ssh的公钥了,如果没有公钥绑定到gitlab仓库,是没办法的。

  • 首先配置git的邮箱和用户名,邮箱选择公司邮箱、用户名选择域账号,例如:配置名称+邮箱

      git config --global user.name "tianmaolin"
      git config --global user.email "tianmaolin@qq.com"
    
  • 然后进行公钥配置, ssh 生成与验证 $ ssh-keygen -t rsa -C "tianmaolin@qq.com"输入完毕后,程序同时要求输入一个密语字符串(passphrase),空表示没有密语。接着会让输入2次口令(password),空表示没有口令。3次回车即可完成当前步骤

第2步的作用是用来生成Git的全局公钥,生成公钥后即可在如下地址获取到全局公钥:去自己的个人目录下c盘>用户>自己的用户名>.ssh应该能看到名为id_rsa.pub的文件,用notpad打开,把里面的全部内容拷贝出来。接下来找到SSH设置,将拷贝到的内容粘贴进去:
在这里插入图片描述

2 检查gitlab项目权限

主要验证两点,首先是是否项目开发,其次是是否有该项目权限:

首先确认项目是否有权限,是否为Private,要注意对应的权限
在这里插入图片描述

其次确认自己是否有该项目的权限,如果是Master和Owner就没有问题,如果是其它角色想往master分支上推,显然不对。

3 检查windows凭证

有的时候更新了密码或者账号,这个时候windows的凭证如果不更新,也是拉取不到的,在控制面板—用户账户—凭据管理器—Windows凭据—普通凭据删除掉gitlab的凭据,然后重新添加或者在git bash提醒的时候再次添加。

4 手动设置该代码关联的远程地址

在项目路径下执行该命令:git remote set-url origin xxxxxxxxxxxxx.git,执行完成之后应该就具备了该项目的访问权限。相当于设置本地代码关联的远程地址

5 取消master的protected状态

这种情况比较特殊,在使用本地强制推送覆盖远程的命令时,master的保护机制会发生效果,不允许强制提交,这个时候只要将master设置为Unprotect即可,当然强推完最好再改回来,维护主分支的稳定性
在这里插入图片描述

解决方案持续更新中,如果大家遇到类似的问题也可以留言汇集。

文章最后发布于: 2019-04-23 10:22:01
展开阅读全文
0 个人打赏
私信求帮助

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: Age of Ai 设计师: meimeiellie

分享到微信朋友圈

×

扫一扫,手机浏览