实现原理
- Remote:远程仓库
- Repository:本地仓库
- index:暂存区
- workspace:工作区
主要服务构成
- Nginx:静态Web服务器
- Gitlab-workhorse:轻量级的反向代理服务器
- Gitlab-shell:用于处理Git命令和修改authorized keys列表
- Logrotate:日志文件管理工具
- Postgresql:数据库
- Redis:缓存服务器
- sidekiq:用于在后台执行队列任务(异步执行)
- unicorn:Gitlab Rails应用是托管在这个服务器上面
目录
- /var/opt/gitlab/git-data/repositories/root:库默认存储目录
- /opt/gitlab:应用代码和相应的依赖程序
- /var/opt/gitlab:gitlab-ctl reconfigure 命令编译后的应用数据和配置文件,不需要人为修改配置
- /etc/gitlab:配置文件目录
- /var/log/gitlab:此目录下存放了gitlab各个组件产生的日志
- /var/opt/gitlab/backups:备份文件生成的目录
工作流程
- 创建并克隆项目
- 创建项目某Featuew分支
- 编写代码并提交至该分支
- 推送该项目分支至远程Gitlab服务器
- 进行代码检查并提交Master主分支合并申请
- 项目领导审查代码并确认合并申请