在Ubuntu上安装GitLab前,需先安装必要依赖包,确保系统支持GitLab运行:
sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata postfix
添加GitLab官方APT仓库(替换为最新版本链接):
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
安装GitLab Community Edition(CE):
sudo apt install gitlab-ce
配置GitLab外部访问地址(修改EXTERNAL_URL为服务器IP或域名):
sudo vim /etc/gitlab/gitlab.rb
# 找到external_url行,修改为:external_url 'http://your_server_ip'
sudo gitlab-ctl reconfigure # 应用配置
sudo gitlab-ctl start # 启动GitLab服务
访问http://your_server_ip,完成初始配置(设置root用户密码)。
团队是GitLab中管理用户与项目的核心单元,便于权限统一分配。
登录GitLab后,点击顶部导航栏New group,输入组名(如dev-team)、描述,选择Visibility(Private/Private),点击Create group。
进入组页面,点击左侧菜单Members,点击Invite a member,输入成员邮箱或用户名,选择角色(如Developer),点击Invite。
Guest:仅能查看项目;Reporter:可查看代码、提交记录;Developer:可推送代码、创建分支;Maintainer:可管理项目设置、合并MR;Owner:拥有组所有权,可删除组。在组页面点击New project,输入项目名称(如web-app),选择Visibility(Private),勾选Initialize with a README(可选),点击Create project。
团队成员通过SSH或HTTPS克隆项目仓库(需提前配置SSH密钥,参考GitLab文档):
git clone git@your_server_ip:group_name/project_name.git # SSH方式
git clone https://your_server_ip/group_name/project_name.git # HTTPS方式
开发新功能时,从main(或master)分支创建新分支(分支命名建议包含功能名称,如feature/login):
git checkout main # 切换到主分支
git pull origin main # 拉取最新代码
git checkout -b feature/login # 创建并切换到新分支
修改代码后,提交并推送至远程仓库:
git add . # 添加修改的文件
git commit -m "Add login functionality" # 提交说明
git push origin feature/login # 推送分支至GitLab
在GitLab项目页面,点击右侧Merge Requests tab,点击New merge request:
feature/login)和Target branch(如main);main分支。合并后可选择Delete source branch(删除源分支)。Developer);为防止main分支被误操作,可设置保护分支:
进入项目Settings > Repository > Protected Branches,添加main分支,设置:
Maintainer及以上角色;Maintainer及以上角色;GitLab CI/CD可实现代码自动构建、测试、部署,提升协作效率。
.gitlab-ci.yml在项目根目录创建.gitlab-ci.yml文件,定义CI/CD流程(示例):
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Building the project..."
- npm install # 示例:安装依赖
test_job:
stage: test
script:
- echo "Running tests..."
- npm test # 示例:运行测试
deploy_job:
stage: deploy
script:
- echo "Deploying to production..."
- scp -r . user@server:/var/www/html # 示例:部署到服务器
only:
- main # 仅在main分支推送时触发
Runner是执行CI/CD任务的组件,需在项目Settings > CI/CD > Runners中注册:
Registration Token;gitlab-runner register
输入Registration Token,选择执行器(如Shell),完成注册。
通过以上步骤,团队可在Ubuntu上的GitLab中实现高效的代码协作,确保代码质量与项目进度。