您当前的位置: 首页 >  git

庄小焱

暂无认证

  • 2浏览

    0关注

    805博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Git——Gitlab服务单机构建

庄小焱 发布时间:2021-09-19 11:04:05 ,浏览量:2

摘要

大家都知道国内访问 Github 速度比较慢,很影响我们的使用。如果你希望体验到 Git 飞一般的速度,可以使用国内的 Git 托管服务——Gitee(gitee.com)。Gitee 提供免费的 Git 仓库,还集成了代码质量检测、项目演示等功能。对于团队协作开发,Gitee 还提供了项目管理、代码托管、文档管理的服务,5 人以下小团队免费。说明一句就是:这个中国版本的github。本博文将对gitlab集群进行构建和学习。同时将详细的讲述对gitlab的实际的操作。

Gitlab的安装

Gitlab要求服务器内存2G以上

gitlab安装包的安装
yum install -y gitlab-ce-13.6.1-ce.0.el7.x86_64.rpm
使用命令进行安装
yum makecache  # 这一步会创建大量的数据

# 直接安装最新版
yum install -y gitlab-ce 

# 如果要安装指定的版本,在后面填上版本号即可
yum install -y  gitlab-ce-13.6.1

# 如果安装时出现gpgkey验证错误,只需在安装时明确指明不进行gpgkey验证
yum install gitlab-ce -y --nogpgcheck
Gitlab的基本配置

配置文件位置  /etc/gitlab/gitlab.rb

[root@centos7 test]# vim /etc/gitlab/gitlab.rb

[root@centos7 test]# grep "^[a-Z]" /etc/gitlab/gitlab.rb

external_url 'http://10.0.0.51'  # 这里一定要加上http://

# 配置邮件服务
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "hgzerowzh@qq.com"  # 自己的qq邮箱账号
gitlab_rails['smtp_password'] = "xxx"  # 开通smtp时返回的授权码
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"   
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = "hgzerowzh@qq.com"  # 指定发送邮件的邮箱地址
user["git_user_email"] = "shit@qq.com"   # 指定接收邮件的邮箱地址

修改好配置文件后,要使用 gitlab-ctl reconfigure 命令重载一下配置文件,否则不生效。

gitlab-ctl reconfigure # 重载配置文件
Gitlab的使用

Gitlab安装好后,设置密码,管理账户为root

创建Group

 创建User

添加User到Group中并授权

 创建Project并配置SSH

在项目中添加成员

将本地文件推送到Gitlab
# 将app01项目克隆下来
git clone git@10.0.0.51:java/app01.git

# 初始化配置
git config --global user.name "hgzero"
git config --global user.email "hgzero@qq.com"

# 在app01目录下新建一些文件

# 推送到gitlab
git add .
git commit -m "first edition"
git push origin master

Gitlab中制定开发计划 创建项目的计划
  • 项目:app01
  • 版本:v1.0

创建里程碑Milestones
  • 用pm账号登录gitlab后操作(先要在admin中设置pm账号的密码)
  • 要根据开发计划来创建Milestones

根据开发计划创建issue

创建4个issue,分派给dev1和dev2这两个开发人员

 开发者登录账号查看分派的任务 

然后开发dev1登录gitlab,就能看到任务已经分配过来了

 开发流程
# 1. 先从仓库把项目拉下来
git clone git@10.0.0.51:java/app01.git
cd app01/

# 2.先创建一个自己的分支,然后进行开发
git checkout -b index   # 创建一个叫index的分支,并切换到这个分支
git status

# 3. 开始开发首页
echo "welcome to this app" > index.html  # 假设就开发了一个index页面

# 4. 开发完成后,把项目传到仓库
git add .
git commit -m "index"
# 如果写成 git commit -m "close #2" ,则表示merge请求允许且merge成功之后,自动删除编号为#2的issue

# 传到index分支
git push origin index 
合并分支

开发dev1发送合并分支请求给pm

pm收到开发的Merge请求后进行处理

使用pm登录,就可以看到pm已经收到了合并请求merge request

 开发dev1确认任务完成

 或者点进去后,在侧边栏进行标识Done,然后已经完成的issue,可以将其Close

 这个时候Milestones的进度已经往前进了一些了:

开发其他功能: 然后其他开发者或者自己再次进行开发时,先要把刚刚更新后的内容(master主干)拉回来,然后再进行开发
git checkout master  # 切换到master
git pull             # 从远端仓库拉取数据# 然后再进行其他操作
Gitlab备份恢复 设置Gitlab备份文件 修改配置文件 /etc/gitlab/gitlab.rb
# 备份保存的位置,这里是默认位置,可修改成指定的位置
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

# 设置备份保存的时间,超过此时间的日志将会被新覆盖
gitlab_rails['backup_keep_time'] = 604800  # 这里是默认设置,保存7天

# 特别注意:
#     如果自定义了备份保存位置,则要修改备份目录的权限,比如:
#     chown -R git.git /data/backup/gitlab
配置完成后要重启以使配置生效
# 重读配置文件
gitlab-ctl reconfigure  

# 重启gitlab
gitlab-ctl restart
设置定时任务
# 每天凌晨2点定时创建备份
# 将一下内容写入到定时任务中 crontab -e
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create

# 备份策略建议:
#     本地保留3到7天,在异地备份永久保存
备份时间的识别
# 备份后的文件类似这样的形式:1494170842_gitlab_backup.tar,可以根据前面的时间戳确认备份生成的时间

data  -d  @1494170842
恢复gitlab设置 停止数据写入服务
# 停止数据写入服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
进行数据恢复并重启
# 进行恢复
gitlab-rake gitlab:backup:restore BACKUP=1494170842  # 这个时间戳就是刚刚备份的文件前面的时间戳

# 重启
gitlab-ctl restart
GitLab项目上线

当所有工作完成之后,就可以进行上线了

上线先打个标签

 删除无用分支

  • 然后删除已经合并到主干中的不必要的分支,如index、pay等
  • 最后一定要注意时间一定要同步,不然会错乱

博文参考

Gitlab的安装及使用 - Praywu - 博客园

关注
打赏
1657692713
查看更多评论
立即登录/注册

微信扫码登录

0.0533s