情景:
公司内网通过GitLab管理代码
1、SmartGit克隆GitLab代码,通过Http方式认证,可以pull代码但是无法push
2、通过Git Bash命令行的方式clone的代码,通过Http方式认证,可以pull代码但是无法push
报错提示:
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 274 bytes | 274.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: hooks/pre-receive:10: undefined method `require_relative’ for main:Object (NoMethodError)
To http://192.168.200.*/mobile/AndroidAPP.git
! [remote rejected] cdog -> cdog (pre-receive hook declined)
error: failed to push some refs to http://192.168.200.*/mobile/AndroidAPP.git’
解决办法:
经过调试发现,通过Http方式认证的developer权限用户只有pull权限没有push权限导致的,改用SSH认证方式clone远程仓库解决问题
SSH生成方式:
Git Bash命令行中输入以下命令,并将公钥配置到管理网站后台
生成SSH密钥:
ssh-keygen -t rsa -C “username@*.com”
查看SSH公钥:
cat ~/.ssh/id_rsa.pub
补充说明:在系统用户文件夹下面的.ssh文件夹下面可以找到私钥和公钥