Gitlab 创建空Project后的初始化问题

2022-12-07 17:26:26 浏览数 (1)

1. 问题

我们如果通过GitLab 创建了一个项目后。如果直接进行TortoiseGit进行操作。

在提交代码并推送到后台服务器上的时候会出现:

代码语言:javascript复制
Total 3 (delta 0), reused 0 (delta 0)
remote: GitLab:
remote: A default branch (e.g. main) does not yet exist for android-group/项目名称
remote: Ask a project Owner or Maintainer to create a default branch:
remote:
remote:   http://我们的服务器地址:端口号/android-group/项目名称/-/project_members
remote:
To ssh://我们的服务器地址:端口号/android-group/项目名称.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'ssh://git@我们的服务器地址:端口号/android-group/项目名称.git'

就会出现这个错误,我们本地的仓库数据无法提交上传到服务器端上。

而问题原因在这段文字中进行了描述:

A default branch (e.g. main) does not yet exist for android-group/项目名称Ask a project Owner or Maintainer to create a default branch:

远端的默认分支不存在,我们无法提交当前分支。需要项目管理者创建默认分支。

通常情况下,即时这个项目是我们自己创建的,但是由于管理员给我们账户配置的权限问题。我们仍然无法维护分支。

2. 解决

没有办法通过命令的形式解决。必须带有Master或者Owner权限的用户,先帮我们创建完毕分支之后。我们才能进行更新提交等操作。

如何查询自己的角色:在项目界面左侧菜单中点击:Project information -> 选择 Members菜单。

然后在打开的页面中可以看到所有有权限访问该Project的用户。每个用户中Max role的值决定了大家的权限范围。

在GitLab中分为了五种权限:(从小到大排序,最下面的权限最大)

1.Guest:可以创建issue、发表评论、不能读写版本库

2.Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限

3.Developer:可以克隆代码、开发、提交、push、RD可以赋予这个权限(没有创建分支的权限)

4.Master:可以创建项目、添加 tag 、保护分支、添加项目成员、编辑项目、核心RD负责人可以赋予这个权限

5.Owner:可以设置项目的访问权限-Visibility Level、删除项目、迁移项目、管理组成员、开发组leader可以赋予这个权限

顺便普及一下GitLab创建的时候对Project的访问权限设置:

  • private:只有组成员可以看到。并不是创建完毕后,只有我们自己可以看到的意思。和你同一组的人都能看到。
  • internal:只要登录的用户就能看到。
  • public:开放的,所有人都可以看到,没有账户的人也可以看到。

2.1 git is not a git command

在执行:git switch -c master 时,提示我 git: 'switch' is not a git command. See 'git --help'.

没有switch命令。那是因为我的git版本过低,没有switch命令。只有git 2.23以上的版本才能使用该命令。

可以通过git --version 查询当前的git版本。 升级命令可以通过:git update-git-for-windows 执行升级操作。

我们创建完空的Project之后,Gitlab上显示的命令和操作那只是一些git的命令。可以参考和不参考。

2.2 配置完毕SSH之后,通过ssh链接加载项目时提示输入password

如果出现,原先通过SSH都能够正常拉取项目代码。然后突然出现无法通过ssh拉取了。而且后台配置信息也是正确的。

输入密码后输出:Permission denied, please try again. 等指令。

那么通常情况下,代表gitlab后台的ssh访问配置出问题了。是服务器的问题,联系管理员排除问题吧。

我们可以切换为http链接进行访问和拉取项目代码。

而通过http访问拉取代码的时候,就需要我们输入用户名和密码了。这个用户名就是我们在网页上登录Gitlab时输入的用户名和密码了。

也就是我们自己的gitlab账户密码。

0 人点赞