GitLab教程(4): 创建和管理项目
项目是GitLab的核心概念,用于存储代码和管理开发流程。本文将详细介绍如何创建、配置和管理GitLab项目。
创建项目
通过Web界面创建
# 方式1: 创建空白项目
# Menu > Projects > Create new project > Create blank project
填写信息:
- Project name: my-awesome-app
- Project URL: 选择组或用户命名空间
- Project slug: my-awesome-app (自动生成)
- Visibility Level:
- Private (默认)
- Internal
- Public
- Initialize repository with a README: 勾选
- Enable Static Application Security Testing (SAST): 可选
点击 "Create project"
# 方式2: 从模板创建
# Create new project > Create from template
# 选择内置模板: Pages, Spring, NodeJS Express 等
# 方式3: 导入项目
# Create new project > Import project
# 支持从以下平台导入:
# - GitHub
# - Bitbucket
# - GitLab.com
# - Gitea
# - Repository by URL
# - Manifest file
通过API创建
# 创建个人项目
curl --request POST \
--header "PRIVATE-TOKEN: your-token" \
--header "Content-Type: application/json" \
--data '{
"name": "My New Project",
"description": "项目描述",
"visibility": "private",
"initialize_with_readme": true
}' \
"https://gitlab.example.com/api/v4/projects"
# 响应
{
"id": 42,
"name": "My New Project",
"path": "my-new-project",
"path_with_namespace": "zhangsan/my-new-project",
"http_url_to_repo": "https://gitlab.example.com/zhangsan/my-new-project.git",
"ssh_url_to_repo": "git@gitlab.example.com:zhangsan/my-new-project.git",
"visibility": "private",
...
}
# 在指定组下创建项目
curl --request POST \
--header "PRIVATE-TOKEN: your-token" \
--data "name=backend-api&namespace_id=10&visibility=private" \
"https://gitlab.example.com/api/v4/projects"
通过命令行创建
# 本地创建仓库并推送到GitLab
# 1. 创建本地仓库
mkdir my-project
cd my-project
git init
# 2. 添加文件
echo "# My Project" > README.md
echo "node_modules/" > .gitignore
git add .
git commit -m "Initial commit"
# 3. 添加远程仓库(需要先在GitLab创建空项目)
git remote add origin git@gitlab.example.com:username/my-project.git
# 4. 推送代码
git push -u origin main
# 输出
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 224 bytes | 224.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To gitlab.example.com:username/my-project.git
* [new branch] main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.
项目设置
常规设置
# Project > Settings > General
# 项目名称和描述
Project name: My Awesome App
Project description: 这是一个示例项目
Project avatar: 上传项目图标
# 可见性
Visibility Level: Private / Internal / Public
# 项目功能开关
Project features:
- Issues: 启用问题跟踪
- Repository: 启用代码仓库
- Merge requests: 启用合并请求
- Forks: 允许Fork
- Pipelines: 启用CI/CD
- Container Registry: 启用容器镜像
- Analytics: 启用分析
- Wiki: 启用Wiki
- Snippets: 启用代码片段
- Pages: 启用GitLab Pages
# 徽章 (Badges)
# 添加构建状态、代码覆盖率等徽章
Link: https://gitlab.example.com/%{project_path}/-/commits/%{default_branch}
Badge image URL: https://gitlab.example.com/%{project_path}/badges/%{default_branch}/pipeline.svg
仓库设置
# Project > Settings > Repository
# 默认分支
Default branch: main
# 分支保护规则
Protected branches:
Branch: main
Allowed to merge: Maintainers
Allowed to push: No one (或 Maintainers)
Allowed to force push: No
Code owner approval: Required
# 添加保护分支
点击 "Add protected branch"
分支名或通配符: release/*
合并权限: Maintainers
推送权限: Developers + Maintainers
# 标签保护
Protected tags:
Tag: v*
Allowed to create: Maintainers
# 部署密钥
Deploy keys:
# 用于CI/CD或其他服务访问仓库
# 点击 "Add deploy key"
Title: Production Server
Key: ssh-ed25519 AAAAC3NzaC1...
Grant write permissions: 根据需要
# 镜像仓库
Mirroring repositories:
# 将仓库镜像到其他Git服务
Git repository URL: https://github.com/username/repo.git
Authentication method: Password / SSH public key
分支管理
# 查看分支
# Project > Code > Branches
# 分支列表示例
main (默认分支, 受保护)
├── develop 最后提交: 2小时前
├── feature/login 最后提交: 1天前
├── feature/payment 最后提交: 3天前
├── release/v1.0.0 最后提交: 1周前 (受保护)
└── hotfix/bug-123 最后提交: 5小时前
# 创建分支 (Web界面)
# Branches > New branch
Branch name: feature/new-feature
Create from: main
# 创建分支 (命令行)
git checkout -b feature/new-feature
git push -u origin feature/new-feature
# 删除分支 (Web界面)
# 点击分支旁边的删除图标
# 删除分支 (命令行)
git push origin --delete feature/old-feature
# 比较分支
# Project > Code > Compare
Source: feature/login
Target: main
# 显示差异和可合并状态
标签和发布
# 创建标签 (Web界面)
# Project > Code > Tags > New tag
Tag name: v1.0.0
Create from: main
Message: Release version 1.0.0
Release notes: (可选) 发布说明
# 创建标签 (命令行)
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0
# 推送所有标签
git push origin --tags
# 创建发布 (Release)
# Project > Deployments > Releases > New release
Tag name: v1.0.0
Release title: Version 1.0.0
Release notes:
## 新功能
- 用户登录功能
- 订单管理
## Bug修复
- 修复支付问题 #123
## 已知问题
- 暂无
# 关联资产文件
Release assets:
- 上传编译好的二进制文件
- 添加外部链接
# 通过API创建发布
curl --request POST \
--header "PRIVATE-TOKEN: your-token" \
--header "Content-Type: application/json" \
--data '{
"name": "Version 1.0.0",
"tag_name": "v1.0.0",
"description": "Release notes here"
}' \
"https://gitlab.example.com/api/v4/projects/42/releases"
Web IDE
# GitLab内置Web IDE,支持在线编辑代码
# 打开Web IDE
# 方式1: Project页面 > Edit > Web IDE
# 方式2: 查看文件时点击 "Web IDE" 按钮
# Web IDE功能
- 语法高亮
- 多文件编辑
- 文件搜索 (Ctrl+P)
- 全局搜索 (Ctrl+Shift+F)
- Git操作
- 终端 (部分版本)
- 预览Markdown
# 提交更改
1. 编辑文件
2. 点击左侧Git图标
3. 填写提交信息
4. 选择提交到:
- 当前分支
- 新分支
5. 点击 "Commit"
# 创建合并请求
提交后可选择自动创建MR
项目模板
# 将项目设置为模板
# Project > Settings > General > Advanced
# 勾选 "Template project"
# 组级别项目模板
# Group > Settings > General > Custom project templates
# 添加模板项目
# 标准项目结构示例
my-project/
├── .gitlab/
│ ├── issue_templates/
│ │ ├── Bug.md
│ │ └── Feature.md
│ └── merge_request_templates/
│ └── Default.md
├── .gitlab-ci.yml
├── .gitignore
├── README.md
├── CHANGELOG.md
├── LICENSE
├── docs/
│ └── README.md
├── src/
│ └── ...
└── tests/
└── ...
# Issue模板示例
# .gitlab/issue_templates/Bug.md
## 问题描述
## 复现步骤
1.
2.
3.
## 期望行为
## 实际行为
## 环境信息
- 操作系统:
- 浏览器:
- 版本:
## 截图
/label ~bug ~needs-investigation
项目迁移
# 导出项目
# Project > Settings > General > Advanced > Export project
# 点击 "Export project"
# 等待导出完成后下载 .tar.gz 文件
# 导入项目
# Create new project > Import project > GitLab export
# 上传导出的 .tar.gz 文件
# 转移项目到其他组/用户
# Project > Settings > General > Advanced > Transfer project
# 选择目标命名空间
# 输入项目名称确认
# 通过API转移项目
curl --request PUT \
--header "PRIVATE-TOKEN: your-token" \
--data "namespace=new-group" \
"https://gitlab.example.com/api/v4/projects/42/transfer"
# 归档项目
# 项目只读,不再活跃开发
# Project > Settings > General > Advanced > Archive project
# 删除项目
# Project > Settings > General > Advanced > Delete project
# 输入项目名称确认删除
总结
本文介绍了GitLab项目的创建、配置和管理方法,包括分支管理、标签发布、Web IDE等功能。正确配置项目可以提高团队开发效率。
下一篇我们将学习GitLab的合并请求(Merge Request)工作流。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。







