gitlab---简介、安装、使用
gitlab简介
GitLab,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目安装。
它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。
gitlab服务管理命令
gitlab-ctl start # 启动所有 gitlab 组件
gitlab-ctl stop # 停止所有 gitlab 组件
gitlab-ctl restart # 重启所有 gitlab 组件
gitlab-ctl status # 查看服务状态
gitlab-ctl reconfigure # 初始化服务
gitlab-ctl tail # 查看日志
gitlab软件安装
gitlab-ce 社区版
gitlab-ee 企业版
下载
官网: https://about.gitlab.com/installation 官网下载速度较慢
1.软件安装
# yum install -y gitlab-ce-10.8.3-ce.0.el7.x86_64.rpm
2.修改配置文件
- 红字部分是要修改的
# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.10.21' #改成你自己服务器的IP或域名
gitlab_rails['gitlab_email_from'] = 'user_sunli@sina.com' #改成你自己的邮箱
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.sina.com" #改成你自己邮箱的SMTP服务器
gitlab_rails['smtp_port'] = 25 #SMTP服务器的端口
gitlab_rails['smtp_user_name'] = "user_sunli2@sina.com" #改成你自己的邮箱
gitlab_rails['smtp_password'] = "邮箱授权码" #自己邮箱的授权码
gitlab_rails['smtp_domain'] = "sina.com" #SMTP服务器的域
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = 'user_sunli@sina.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.sina.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "user_sunli@sina.com"
gitlab_rails['smtp_password'] = "b89900df1f87d423"
gitlab_rails['smtp_domain'] = "sina.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = '1916989848@qq.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "1916989848@qq.com"
gitlab_rails['smtp_password'] = "vvotbaaiifrweagh"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
配置服务器发公网邮件
1、确保postfix服务运行
# systemctl status postfix
2、安装mailx
# yum install -y mailx
3、配置smtp服务器
修改/etc/mail.rc文件,在文件中添加以下内容
# vim /etc/mail.rc
set from=user_sunli@sina.com
set smtp=smtp.sina.com
set smtp-port=465
set smtp-auth-user=user_sunli@sina.com
set smtp-auth-password=b89900df1f87d423
set smtp-auth=login
set from=1916989848@qq.com
set smtp=smtp.qq.com
set smtp-port=465
set smtp-auth-user=1916989848@qq.com
set smtp-auth-password=vvotbaaiifrweagh
set smtp-auth=login
4、测试
# echo "邮件内容" |mail -s "邮件标题" 公网邮箱
# echo "hello" |mail -s "hehehe" 1916989848@qq.com
----------------------------------------------------------------
配置邮箱可能遇到的问题:
1).端口,sina邮箱smtp端口为25, 其他邮箱的端口需要查询
2).需要在邮箱设置中开启smtp服务
----------------------------------------------------------------
3.初始化并启动服务
# gitlab-ctl reconfigure
(3分钟左右)
邮件测试
# gitlab-rails console
Loading production environment (Rails 4.2.10)
irb(main):001:0> Notify.test_email('1916989848@qq.com', 'test', 'hello').deliver_now
4.浏览器访问192.168.10.21
先设置root密码,然后用root帐户登录
去掉用户的自动注册功能
创建用户eric,lily. 用户添加后,gitlab会给用户发一封修改密码的邮件,各用户需要登录自己的邮箱,并点击相关的链接,设置新密码。
Gitlab使用
大部分公司的处理流程如下:
PM在gitlab创建任务,分配给开发人员
开发人员领取任务后,在本地使用git clone拉取代码库
开发人员创建开发分支(git checkout -b dev),并进行开发
开发人员完成之后,提交到本地仓库(git commit )
开发人员在gitlab界面上申请分支合并请求(Merge request)
PM在gitlab上查看提交和代码修改情况,确认无误后,确认将开发人员的分支合并到主分支(master)
开发人员在gitlab上Mark done确认开发完成,并关闭issue。这一步在提交合并请求时可以通过描述中填写"close #1"等字样,可以直接关闭issue
Gitlab上有 项目(project) 跟 组(group) 的概念
一个组里有一到多个成员(用户), 他们可能是各种不同的角色(owner, master, developer...) , 各角色权限不同
一个组里可以有多个项目(代码库)
我们先创建组,再在组中创建项目
使用eric用户的身份与密码登录,登录后先创建一个项目组,创建后eric为此项目组的owner
创建项目组:
• Private 私有,只有所有者、组内成员或已分配的用户有查看权限(同GitHub收费版的私有仓库)
• Internal 内部,拥有GitLab账号的成员可以查看,无账号用户无法访问(适合于服务器放在公网但不想公开代码的情景,GitHub没有这个功能)
• Public 公共,任何人都可以访问(同GitHub免费版的公共仓库)
建议公司内部的代码仓库都设置为 Internal。
创建完成后, 将用户lily添加到组中,并指定Ta为Developer
创建project
项目创建好后由PM创建README.md文件并推送到master分支
1.eric用户登录Gitlab,并上传自己的公钥
2.将项目库克隆下来,创建README.md文件并提交到本地
# yum install git -y
# git config --global user.name "eric"
# git config --global user.email "eric@xxx.com"
# git clone git@192.168.10.21:zidian/voice-message.git
# cd voice-message
# echo "xxxxxxxx" > README.md
# git add README.md
# git commit -m "first commit"
# git push origin master
开发人员操作 - 以下为开发人员lily为例
1.使用自己的帐号登录Gitlab并上传公钥
2.将项目库克隆下来并创建新的分支进行开发: 以dev分支为例
# yum install git -y
# git config --global user.name "lily"
# git config --global user.email "lily@xxx.com"
# git clone git@192.168.10.21:zidian/voice-message.git
# cd voice-message
# git checkout -b dev
3.将代码提交到本地可能多次提交
# git add xxx
# git commit -m "xxxx"
4.将开发好的代码提交到Gitlab
# git push origin dev #注意,开发人员不能直接提交到master分支
5.登录Gitlab, 创建合并请求
6.eric用户登录到Gitlab,找到"合并请求", 将dev分支合并到master