gitlab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。 (基础功能免费,高级功能收费)
基础功能开源,可自行搭建可以进行权限控制,使得代码对部分人可见 gitlab使用方便,非常适合企业内部使用
1、在防火墙里开放http跟ssh端口
yum install lokkit
yum install curl openssh-server openssh-clients postfix cronie -y
systemctl start postfix
systemctl enable postfix.service
lokkit -s http -s ssh
2、添加gitlab仓库,并安装
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
3、启动gitlab
gitlab-ctl reconfigure
根据系统提示信息,可以进入到相应文件中查看密码:
之后可以根据提示修改密码
4、修改配置文件
vim /etc/gitlab/gitlab.rb
:修改external_url为gitlab机子的ip+要使用的端口 ,如:http://10.24.200.10:8888
找到nginx['listen_port']
这条语句,改为刚刚选定的端口(8888),如nginx[‘listen_port’] = 8888:
5、重新配置gitlab并重启:
gitlab-ctl reconfigure
gitlab-ctl restart
6、配置防火墙:
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
7、重启生效配置:
systemctl restart iptables.service
1、创建file1文件自定义内容,并初始化git:
git init
2、本地添加到暂存区并提交:
git add *
或者git add file1
git commit -m "输入提交内容"
3、远程提交到gitlab的,并推送:
git remote add origin http://10.24.200.10:8888/gitlab-instance-4001b00b/testdemo.git
git push --set-upstream origin master
或git push --set-upstream origin main
有合并请求时,邮件通知 账号注册时,邮件验证修改密码时,通过邮件修改
1、开启QQ邮箱的smtp服务(不建议使用163邮箱,发几次之后,就不能发送)
设置–>账户–>smtp–>开启
2、修改gitlab配置:vim /etc/gitlab/gitlab.rb
,找到下面这一串文本,进行修改::
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "kpjcsmyvttqnbdfh"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]'
user['git_user_email'] = "[email protected]"
gitlab-ctl reconfigure
重启配置
3、测试邮件服务是否正常
gitlab-rails console
Notify.test_email('接收方邮件地址','邮件标题','邮件内容').deliver_now
当其他人访问域名进行注册登录时,输入不合法的邮箱一样会注册成功,这样显然是不行的,因此可以开启注册邮箱验证:
步骤:admin area -->setting–>Sign-up restrictions–>勾选Send confirmation email on sign-up
创建组:
首页->create a group
访问级别:
以管理员身份运行git bash:
ssh-keygen -t rsa
(三次回车)
在C:\Users\用户\.ssh
下产生两个文件:id_rsa和id_rsa.pub
用记事本打开id_rsa.pub
文件,复制内容,在gitlab.com的网站上到ssh密钥管理页面,内容粘贴刚才复制的内容,点击add key
。
保护特定的分支不被随便合并,以免影响相应的分支:
进入项目–>setting–> repository–>projected branches
注意 能push 就能merge ,相应的权限把握好(master分支设置只能masters可以合并)
例:
1、创建空文件夹,初始化git暂存区:git init
,git remote add origin [项目链接]
2、拉取项目master分支内容到本地:git pull origin master
3、创建并切换到新分支dev,并拉取项目dev分支内容到本地:git pull origin dev
4、 对拉取到的内容进行修改,并添加到git暂存区后提交:git add *
,git commit -m "提交说明"
5、切换到master分支(默认分支),将两条分支合并:git merge dev
6、推送到远程仓库gitlab:git push
(如果出现提示git push --set-upstream origin master
就使用提示的语句)
7、此时会跳出登录界面,以developer身份的用户登录,之后会显示remote rejected,验证分支保护成功:
创建v1.0.1标签并推送到远程仓库gitlab,验证保护成功:
执行lokkit -s http -s ssh
报错:option --selinux: invalid choice: ‘disable’ (choose from ‘enforcing’, ‘permissive’, ‘disabled’)
解决方法:
vi /etc/selinux/config
强制模式enforcing:表示所有违反安全策略的行为都将被禁止。
宽容模式permissive:表示所有违反安全策略的行为不被禁止,但是会在日志中作记录。
根据情况自行修改。
添加gitlab仓库,并安装执行curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
报错:curl: (6) Could not resolve host: packages.gitlab.cc; Unknown error
解决方法:
进入网址:https://packages.gitlab.com/gitlab/gitlab-ce
可获得最新有效链接