docs: 更新Git工作流程

- 明确开发分支和发布分支的职责
- 发布分支用于部署和打包
- 开发分支用于日常开发

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
root
2026-02-27 18:41:11 +08:00
parent 2df57fb5d5
commit f82855141e
+54 -139
View File
@@ -1,171 +1,86 @@
# Git 工作流
# Git 工作流程
## 分支策略
## 分支说明
采用 Git Flow 简化版工作流:
### 主要分支
| 分支 | 用途 | 说明 |
|------|------|------|
| `master` | 生产环境 | 保持稳定,只接受从 develop 合并的代码 |
| `develop` | 开发环境 | 主开发分支,包含最新的开发功能 |
| `feature/*` | 功能分支 | 从 develop 分支,开发完成后合并回 develop |
| `hotfix/*` | 热修复分支 | 从 master 分支,修复后合并到 master 和 develop |
## 分支命名规范
### 功能分支
```
feature/功能名称
例如:feature/i18n-support
```
### 热修复分支
```
hotfix/问题描述
例如:hotfix/login-error
```
| 分支 | 用途 | 部署环境 |
|------|------|---------|
| `master` | 发布分支 | 线上生产环境 (45.153.130.80) |
| `feature/mzl-dev` | 开发分支 | 本地开发环境 |
## 工作流程
### 1. 开发新功能
### 日常开发
1. **开发功能** - 在 `feature/mzl-dev` 分支开发
```bash
# 从 develop 创建功能分支
git checkout develop
git pull origin develop
git checkout -b feature/your-feature-name
# 开发并提交
git checkout feature/mzl-dev
git pull origin feature/mzl-dev
# 开发、提交
git add .
git commit -m "feat: add your feature"
# 推送到远程
git push -u origin feature/your-feature-name
# 完成后合并到 develop
git checkout develop
git merge feature/your-feature-name
git push origin develop
# 删除功能分支(可选)
git branch -d feature/your-feature-name
git commit -m "feat: xxx"
git push origin feature/mzl-dev
```
### 2. 修复紧急问题
2. **发布上线** - 合并到 `master` 分支
```bash
# 从 master 创建热修复分支
git checkout master
git pull origin master
git checkout -b hotfix/your-fix-name
# 修复并提交
git add .
git commit -m "fix: describe the fix"
# 推送到远程
git push -u origin hotfix/your-fix-name
# 合并到 master 和 develop
git checkout master
git merge hotfix/your-fix-name
git merge feature/mzl-dev --no-edit
git push origin master
git checkout develop
git merge hotfix/your-fix-name
git push origin develop
```
### 3. 发布到生产
3. **服务器部署** - 拉取 `master` 分支
```bash
ssh root@45.153.130.80
cd /opt/x-server-mobile
git pull origin master
docker-compose -f docker-compose.prod.yml down
docker-compose -f docker-compose.prod.yml up -d
```
## 前端部署
```bash
# 将 develop 合并到 master
# 1. 切换到发布分支
git checkout master
git merge develop
git push origin master
# 打标签
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0
# 2. 构建前端
cd frontend
npm run build
# 3. 上传到服务器(本地执行)
rsync -avz --delete frontend/dist/ root@45.153.130.80:/www/sites/uniservice-mobile.hnxinyouhe.com/index/
# 或使用部署脚本
cd ..
./deploy/deploy-1panel.sh 45.153.130.80
```
## 快速发布脚本
```bash
# 添加到 ~/.bashrc 或 ~/.zshrc
git-release() {
echo "=== 发布到 master ==="
git checkout master && \
git pull origin master && \
git merge feature/mzl-dev -m "Merge feature/mzl-dev to master" && \
git push origin master && \
git checkout feature/mzl-dev
echo "=== 发布完成 ==="
}
```
## 提交信息规范
使用 Conventional Commits 规范:
| 类型 | 说明 | 示例 |
|------|------|------|
| `feat` | 新功能 | `feat: add user login` |
| `fix` | 修复bug | `fix: correct i18n loading` |
| `docs` | 文档变更 | `docs: update README` |
| `style` | 代码格式 | `style: format code` |
| `refactor` | 重构 | `refactor: simplify API` |
| `test` | 测试 | `test: add unit tests` |
| `chore` | 构建/工具 | `chore: update dependencies` |
格式:
```
<type>(<scope>): <subject>
<body>
<footer>
```
## 当前分支状态
| 分支 | 状态 | 说明 |
|------|------|------|
| `master` | ✅ 稳定 | 生产代码(含5语言支持) |
| `develop` | ✅ 活跃 | 主开发分支(含5语言支持) |
## 常用命令
```bash
# 查看所有分支
git branch -a
# 查看当前分支
git branch --show-current
# 切换分支
git checkout <branch-name>
# 创建并切换到新分支
git checkout -b <new-branch>
# 删除本地分支
git branch -d <branch-name>
# 删除远程分支
git push origin --delete <branch-name>
# 查看分支差异
git diff develop
# 查看分支树
git log --graph --oneline --all
```
## 发布流程
1. **开发阶段**:在 `develop` 分支进行开发
2. **测试阶段**:创建 `release` 分支进行测试
3. **发布阶段**:合并到 `master` 并打标签
4. **维护阶段**:使用 `hotfix` 分支修复紧急问题
## 注意事项
1. **永远不要直接在 master 分支开发**
2. **功能分支必须从 develop 分支创建**
3. **提交前先拉取最新代码**
4. **保持提交信息清晰规范**
5. **及时删除已合并的功能分支**
| `docs` | 文档变更 | `docs: update deployment guide` |
## 远程仓库
- 仓库地址:http://219.157.255.213:25311/xinyouhe/x-server-mobile.git
- 默认分支:develop(建议设置)
- Pull Request:http://219.157.255.213:25311/xinyouhe/x-server-mobile/compare/master...develop
- 发布分支:`master`
- 开发分支:`feature/mzl-dev`