GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。
可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用
1.安装gitlab
# 安装依赖,并启动ssh、防火墙开启相应端口、postfix
[root@gitlab ~]# yum install -y curl policycoreutils-python openssh-server perl
# 安装完成后会直接启动
[root@gitlab ~]# yum install gitlab-jh-16.0.3-jh.0.el7.x86_64.rpm
2.初始化并查看状态,检查端口
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.249.156'
[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl status
[root@gitlab ~]# netstat -lntup|grep 80
3.使用浏览器访问登录
查找登录所需要得密码
cat /etc/gitlab/initial_root_password
4.进去后创建用户并设置密码,用户组,以及项目组
5.邮箱配置
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
找到第84行 将注释打开,改成自己的邮箱以及授权码
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "newrain_wang@163.com"
gitlab_rails['smtp_password'] = "UWYNCPQOBQFCDLIW"
gitlab_rails['smtp_domain'] = "smtp.163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = false
gitlab_rails['gitlab_email_from'] = 'newrain_wang@163.com'
重载配置启动服务
[root@gitlab ]# gitlab-ctl reconfigure
6.备份与恢复
备份
[root@gitlab ~]# cd /var/opt/gitlab/backups/
gitlab-rake gitlab:backup:create
备份完成后在web端删除项目
恢复
先暂停服务
[root@gitlab ]# gitlab-ctl stop unicorn
[root@gitlab ]# gitlab-ctl stop sidekiq
执行下面的命令进行恢复:后面再输入两次yes就完成恢复了。
执行完备份命令会在backup下生成文件
[root@gitlab backups]# ls
1700553222_2023_11_21_16.5.2-jh_gitlab_backup.tar
恢复
[root@gitlab backups]# gitlab-rake gitlab:backup:restore BACKUP=1700553222_2023_11_21_16.5.2-jh
复制到jh即可
启动服务,在web端查看恢复的项目
[root@gitlab backups]# gitlab-ctl start unicorn
[root@gitlab backups]# gitlab-ctl start sidekiq
或
[root@gitlab backups]# gitlab-ctl restart
不同用户编写代码提交处理流程
先web将用户添加到此项目中,然后在终端创建新用户并切换至此用户,查看他的密钥绑定到web端需要传代码的用户中,然后克隆项目在终端操作。
获取到他的ssh克隆后在终端输入代码并上传,然后在web端便可看到创建的东西,然后可以合并分支,将他整合到总main中
[aa@slave ~]$ git clone git@192.168.203.137:zimu/ml.git
[aa@slave ~]$ ls
ml
[aa@slave ~]$ cd ml
[aa@slave ml]$ ls
README.md
[aa@slave ml]$ echo 666 > aa.txt
[aa@slave ml]$ ls
aa.txt README.md
[aa@slave ml]$ git add .
[aa@slave ml]$ git commit -m "1"
[aa@slave ml]$ git checkout -b aaaa #创建一个新的分支并切换
[aa@slave ml]$ git push origin aaaa #上传