设为首页 收藏本站
查看: 1155|回复: 0

[经验分享] git push上传代码到gitlab上,报错401/403(或需要输入用户名和密码)

[复制链接]

尚未签到

发表于 2018-1-10 18:48:37 | 显示全部楼层 |阅读模式
  之前部署的gitlab,采用ssh方式连接gitlab,在客户机上产生公钥上传到gitlab的SSH-Keys里,git clone下载和git push上传都没问题,这种方式很安全。
  后来应开发同事要求采用http方式连接gitlab,那么首先将project工程的“Visibility Level”改为“Public”公开模式,要保证gitlab的http端口已对客户机开放。
  后面发现了一个问题:
  http方式连接gitlab后,git clone下载没有问题,但是git push上传有报错:
  error: The requested URL returned error: 401 Unauthorized while accessing http://git.xqshijie.net:8081/weixin/weixin.git/info/refs
  fatal: HTTP request failed
  或者
  The requested URL returned error: 403 Forbidden while accessing
  实例如下:
  假设git的url为http://git.wangshibo.net
[iyunv@test-huanqiu ~]# mkdir /root/git

[iyunv@test-huanqiu ~]# cd /root/git

[iyunv@test-huanqiu git]# git init .

[iyunv@test-huanqiu git]# git clone http://git.wangshibo.net:8081/weixin/weixin.git

  Initialized empty Git repository in /root/git/weixin/.git/
  remote: Counting objects: 10, done.
  remote: Compressing objects: 100% (6/6), done.
  remote: Total 10 (delta 0), reused 0 (delta 0)
  Unpacking objects: 100% (10/10), done.
  上面可以看出,已经能成功git clone下代码
[iyunv@test-huanqiu git]# ll

  total 4
  drwxr-xr-x. 3 root root 4096 Nov 30 15:58 weixin
[iyunv@test-huanqiu git]#  cd weixin/

[iyunv@test-huanqiu weixin]# ll

  total 8
  -rw-r--r--. 1 root root 15 Nov 30 15:58 heihei
  -rw-r--r--. 1 root root  1 Nov 30 15:38 README.md
  现在测试下git push
[iyunv@test-huanqiu weixin]# git rm heihei

[iyunv@test-huanqiu weixin]# touch test.file

[iyunv@test-huanqiu weixin]# echo "123456" > test.file

[iyunv@test-huanqiu weixin]# git add .

[iyunv@test-huanqiu weixin]# git commit -m "this is a test"

[iyunv@test-huanqiu weixin]# git push                                      //或者git push -u origin master

  error: The requested URL returned error: 401 Unauthorized while accessing http://git.wangshibo.net:8081/weixin/weixin.git/info/refs
  fatal: HTTP request failed
  解决办法:
  在代码的.git/config文件内[remote "origin"]的url的gitlab域名前添加gitlab注册时的“用户名:密码@”
  另外发现这个用户要在对应项目下的角色是Owner或Master才行,如果是Guest、Reporter、Developer,则如下操作后也是不行。
  如下,gitlab的用户名是wangshibo,假设密码是HU@wew12378!h8
  查看gitlab界面里的登陆用户名:

  然后修改代码里的.git/config文件
[iyunv@test-huanqiu weixin]# cd .git

[iyunv@test-huanqiu .git]# cat config

[core]

  repositoryformatversion = 0
  filemode = true
  bare = false
  logallrefupdates = true
[remote "origin"]

  fetch = +refs/heads/*:refs/remotes/origin/*
  url = http://git.wangshibo.net:8081/weixin/weixin.git
[branch "master"]

  remote = origin
  merge = refs/heads/master
  修改如下:
[iyunv@test-huanqiu .git]# cat config

[core]

  repositoryformatversion = 0
  filemode = true
  bare = false
  logallrefupdates = true
[remote "origin"]

  fetch = +refs/heads/*:refs/remotes/origin/*
  url = http://wangshibo:HU@wew12378!h8@git.wangshibo.net:8081/weixin/weixin.git
[branch "master"]

  remote = origin
  merge = refs/heads/master
  然后再次git push,发现可以正常提交了!
[iyunv@test-huanqiu weixin]# git push

  Counting objects: 4, done.
  Delta compression using up to 8 threads.
  Compressing objects: 100% (2/2), done.
  Writing objects: 100% (3/3), 297 bytes, done.
  Total 3 (delta 0), reused 0 (delta 0)
  To http://wangshibo:HUIhui1987521@git.xqshijie.net:8081/weixin/weixin.git
  8fcb559..6c97b56  master -> master
  ------------------------------------------------------------------------------------------------------------------------------------
  可以创建一个用户名作为admin管理员,然后将这个用户名和密码添加到项目代码的.git/config里面,如上操作!
  如果不是管理员,则至少对当前代码具有owner或master权限。
  这样,在.git/config文件里添加这个用户名和密码权限,然后其他人在git push的时时候都使用这个文件进行覆盖。
  其他人在首次git clone下载代码的时候,需要进行--global全局配置,然后就可以在gitweb控制台里追踪到每个操作者的提交记录了!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-433655-1-1.html 上篇帖子: centos6 安装GitLab 下篇帖子: GitLab搭建详细过程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表