Gitlab项目配置

前言

Gitlab可以用来搭建Git仓库服务器端,具有很好的项目管理和用户管理功能,目前Gitlab服务端主要部署在Linux相关平台,Window平台还没有对应的部署包。笔者通过在VMWare Redhat Linux上安装Gitlab服务器来实现代码的版本控制功能,RedHat默认源由于GFW的问题都无法正常请求到Gitlab包,可以在百度上搜索清华Redhat源,很快就能够下载好需要的软件包,之后在用rpm命令安装Gitlab包,具体安装过程可以参考Gitlab安装与配置

密码配置

Gitlab安装之后默认使用的用户名是root,而且有一个默认的密码,不过在安装的过程中临时设置了一下后面忘记密码,直接就无法登录了,这里介绍一种能够修改默认密码的方法。

// 打开命令行输入su命令切换到root用户下,接着输入gitlab-rails console
[zxz@localhost ~]$ su
密码:
[root@localhost zxz]# gitlab-rails console
-------------------------------------------------------------------------------------
 Gitlab:       10.8.3 (564c342)
 Gitlab Shell: 7.1.2
 postgresql:   9.6.8
-------------------------------------------------------------------------------------
Loading production environment (Rails 4.2.10)

irb(main):007:0> user = User.where(id: 1).first
=> #<User id:1 @root>
irb(main):008:0> user.password=12345678
=> 12345678
irb(main):009:0> user.password_confirmation=12345678
=> 12345678
irb(main):010:0> user.save!
Enqueued ActionMailer::DeliveryJob (Job ID: f629a2a7-ecb8-4a6f-ab49-da53f98af580) to Sidekiq(mailers) with
arguments: "DeviseMailer", "password_change", "deliver_now", gid://gitlab/User/1
=> true
irb(main):011:0> quit

需要注意的是确保第一行User.where返回的user一定不能为空,为空就需要换其他的方式查找默认用户,password和password_confirmation要完全一样不少于8个字符,密码字符串不需要添加引号否则会报错。

项目配置

这时候在Redhat的火狐浏览器中输入localhost就能够访问gitlab的服务端网站,输入账户名root和密码12345678登录进入管理界面。界面中主要包含Project项目管理、User用户管理、Group群组管理和Gitlab配置四个大部分,这里首先创建一个Group群专门负责基础组件添加和维护,接着增加新的用户并且添加到基础组件群组中,最后添加一个基础组件项目并且指定由群组中某些成员负责维护。

这里写图片描述

创建群组

群组主要的目的是聚合一群用户和它们维护的项目,只要在如下的界面中添加群组相关信息最后点击创建就可以了。

这里写图片描述

创建用户

创建完群组后就需要创建用户账号,通常在企业里都是员工向管理源请求加入某个群组,管理员会根据员工提供的个人系信息直接创建账号,并且将账号添加到对应的群组中。

这里写图片描述

创建项目

最后一步就是创建项目,项目的创建也很简单可以在之前创建的群组里添加项目,这样整个项目就归所在群组维护,可以为项目增加各种维护人员,需要注意的是项目里的master分支等特殊分支developer用户无法更新,只有master用户才有权限更新。

这里写图片描述

本地配置

前面已经完成了服务器端的项目配置,需要在客户端安装git程序,这里也不再赘述,安装完git程序之后就需要配置用户名和用户账号。

git config --global user.name "xxx"
git config --global user.email "[email protected]"

如果用户直接使用git和远程仓库交互需要每次都输入自己密码,这样很不方便,可以在本地配置ssh客户端生成公钥和私钥,将公钥提交到服务器上,注意生成公钥的时候一定要使用自己注册的帐号。先手动生成SSH的公私钥对,公钥需要放到服务器端,私钥放在本地使用。启动git bash命令行输入命令ssh-keygen -t rsa -C “[email protected]”,命令行交互会要求输入密码,不用输入直接点击回车,确认密码也直接输入回车。命令执行完毕到Admistrator目录下的.ssh文件夹下查看。

这里写图片描述

id_rsa文件里放的就是私钥数据,id_rsa.pub文件就是公钥数据。用notepad打开id_rsa.pub文件拷贝里面的数据。打开techgit系统选中自己的头像,点击Settings选项。

这里写图片描述

本地账号都已经配置完成,接着就开始为本地项目添加远程git仓库路径,并且执行push操作将本地的代码都发送到远程仓库里,可以看到第一次添加代码表示当前用户没有向master分支修改代码的权限,请求管理员修改当前用户的权限即可。

git remote add origin http://172.18.64.200/common/myproject.git

git push origin HEAD
Counting objects: 1242, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1208/1208), done.
Writing objects: 100% (1242/1242), 3.87 MiB | 1.58 MiB/s, done.
Total 1242 (delta 297), reused 0 (delta 0)
remote: Resolving deltas: 100% (297/297), done.
remote: GitLab: You are not allowed to push code to protected branches on this project.
To http://172.18.64.200/common/myproject.git
 ! [remote rejected] HEAD -> master (pre-receive hook declined)
error: failed to push some refs to 'http://172.18.64.200/common/myproject.git'

可以看到用户被提升权限之后再次提交代码就成功了。

git push origin HEAD
Counting objects: 1242, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1208/1208), done.
Writing objects: 100% (1242/1242), 3.87 MiB | 406.00 KiB/s, done.
Total 1242 (delta 297), reused 0 (delta 0)
remote: Resolving deltas: 100% (297/297), done.
To http://172.18.64.200/common/myproject.git
 * [new branch]      HEAD -> master

Git会忽略空的文件夹,如果你想版本控制包括空文件夹,根据惯例会在空文件夹下放置.gitkeep文件。其实对文件名没有特定的要求。一旦一个空文件夹下有文件后,这个文件夹就会在版本控制范围内。

猜你喜欢

转载自blog.csdn.net/xingzhong128/article/details/81036986
今日推荐