diff --git a/docs/GIT_WORKFLOW.md b/docs/GIT_WORKFLOW.md index 7816187..6795f3f 100644 --- a/docs/GIT_WORKFLOW.md +++ b/docs/GIT_WORKFLOW.md @@ -4,83 +4,318 @@ | 分支 | 用途 | 部署环境 | |------|------|---------| -| `master` | 发布分支 | 线上生产环境 (45.153.130.80) | -| `feature/mzl-dev` | 开发分支 | 本地开发环境 | +| `master` | 生产分支 | 线上生产环境 (45.153.130.80) | +| `develop` | 开发集成分支 | 测试/预发布环境 | +| `feature/*` | 个人功能分支 | 本地开发环境 | -## 工作流程 +## 分支结构 -### 日常开发 - -1. **开发功能** - 在 `feature/mzl-dev` 分支开发 -```bash -git checkout feature/mzl-dev -git pull origin feature/mzl-dev -# 开发、提交 -git add . -git commit -m "feat: xxx" -git push origin feature/mzl-dev +``` + master (生产) + ↑ + 发布合并 + ↑ + develop (开发) + ↑ + 功能合并 + ↑ + ┌──────────────┬────┴────┬──────────────┐ + ↓ ↓ ↓ ↓ +feature/xxx-1 feature/xxx-2 feature/xxx-3 feature/xxx-4 + (个人A) (个人B) (个人A) (个人B) ``` -2. **发布上线** - 合并到 `master` 分支 +--- + +## 一、工作流程 + +### 1.1 开发新功能 + +**从 develop 创建个人功能分支:** + ```bash +# 确保本地 develop 是最新的 +git checkout develop +git pull origin develop + +# 创建个人功能分支(命名规范:feature/功能名 或 feature/功能名-姓名首字母) +git checkout -b feature/user-login +# 或带姓名标识 +git checkout -b feature/user-login-mzl +``` + +**在功能分支上开发:** + +```bash +# 开发、提交 +git add . +git commit -m "feat: add user login" +git push origin feature/user-login + +# 继续开发... +git add . +git commit -m "fix: correct login error handling" +git push origin feature/user-login +``` + +### 1.2 功能开发完成 + +**合并到 develop 进行团队测试:** + +```bash +# 1. 切换到 develop 并更新 +git checkout develop +git pull origin develop + +# 2. 合并功能分支(使用 --no-ff 保留合并历史) +git merge --no-ff feature/user-login -m "Merge feature/user-login into develop" + +# 3. 推送到远程 +git push origin develop + +# 4. (可选)删除已合并的功能分支 +git branch -d feature/user-login +git push origin --delete feature/user-login +``` + +### 1.3 发布到生产 + +**从 develop 合并到 master:** + +```bash +# 1. 切换到 master 并更新 git checkout master git pull origin master -git merge feature/mzl-dev --no-edit + +# 2. 合并 develop(使用 --no-ff 保留合并历史) +git merge --no-ff develop -m "Release: merge develop into master" + +# 3. 添加版本标签(可选) +git tag -a v1.0.0 -m "Release version 1.0.0" +git push origin v1.0.0 + +# 4. 推送到远程 git push origin master ``` -3. **服务器部署** - 拉取 `master` 分支 +### 1.4 生产服务器部署 + ```bash ssh root@45.153.130.80 cd /opt/x-server-mobile git pull origin master +docker restart x-server-backend +# 或 docker-compose -f docker-compose.prod.yml down docker-compose -f docker-compose.prod.yml up -d ``` -## 前端部署 +--- + +## 二、分支命名规范 + +| 分支类型 | 命名格式 | 示例 | +|---------|---------|------| +| 功能分支 | `feature/功能名` 或 `feature/功能名-姓名` | `feature/user-login`, `feature/user-login-mzl` | +| 修复分支 | `fix/问题描述` 或 `fix/问题描述-姓名` | `fix/login-error`, `fix/login-error-mzl` | +| 热修复分支 | `hotfix/问题描述` | `hotfix/security-fix` | + +--- + +## 三、前端部署 ```bash -# 1. 切换到发布分支 +# 1. 切换到 master git checkout master +git pull origin master # 2. 构建前端 cd frontend -npm run build +npm run build --mode production -# 3. 上传到服务器(本地执行) +# 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 "=== 发布完成 ===" -} -``` - -## 提交信息规范 +## 四、提交信息规范 | 类型 | 说明 | 示例 | |------|------|------| | `feat` | 新功能 | `feat: add user login` | | `fix` | 修复bug | `fix: correct i18n loading` | | `docs` | 文档变更 | `docs: update deployment guide` | +| `style` | 代码格式 | `style: format code` | +| `refactor` | 重构 | `refactor: simplify auth logic` | +| `test` | 测试相关 | `test: add login test` | +| `chore` | 构建/工具 | `chore: update dependencies` | -## 远程仓库 +**完整格式:** +``` +(): -- 仓库地址:http://219.157.255.213:25311/xinyouhe/x-server-mobile.git -- 发布分支:`master` -- 开发分支:`feature/mzl-dev` + + +