背景

  • Gitlab创建的新仓库
  • 按照Gitlab的指引推送现有文件夹
  • 报错如下
root@D218:~/.ssh# git push --set-upstream origin master
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 4 threads
Compressing objects: 100% (10/10), done.
Writing objects: 100% (10/10), 2.51 KiB | 855.00 KiB/s, done.
Total 10 (delta 3), reused 0 (delta 0), pack-reused 0
remote: GitLab: 
remote: A default branch (e.g. main) does not yet exist for deploy/reverse-proxies/nginx-hangzhou
remote: Ask a project Owner or Maintainer to create a default branch:
remote: 
remote:   https://gitlab.lodatone.com/deploy/reverse-proxies/nginx-hangzhou/-/project_members
remote: 
To ssh://ssh.gitlab.lodatone.com:8022/deploy/reverse-proxies/nginx-hangzhou.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'ssh://ssh.gitlab.lodatone.com:8022/deploy/reverse-proxies/nginx-hangzhou.git'

解决办法

  • 在Gitlab里暂时把这个用户设置位“维护者”或“所有者”
  • 因为维护者可以创建分支

再次推送,成功

root@D218:~/.ssh# git push --set-upstream origin master
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 4 threads
Compressing objects: 100% (10/10), done.
Writing objects: 100% (10/10), 2.51 KiB | 2.51 MiB/s, done.
Total 10 (delta 3), reused 0 (delta 0), pack-reused 0
To ssh://ssh.gitlab.lodatone.com:8022/deploy/reverse-proxies/nginx-hangzhou.git
 * [new branch]      master -> master
branch 'master' set up to track 'origin/master'.