docs: 更新Git工作流程
- 明确开发分支和发布分支的职责 - 发布分支用于部署和打包 - 开发分支用于日常开发 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+54
-139
@@ -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`
|
||||
|
||||
Reference in New Issue
Block a user