# GIT 功能应用 公司 http://117.78.60.236:8000/users/sign_in zhanghonggang@csbr.cn w~7! ## 安装 ```bash sudo apt install git sudo apt install gitk git-cola 图形化工具 全局设置 git config --global user.email "zimyx@.com" git config --global user.name "Your Name" git config --global credential.helper store 全局级别保存凭据,免密 ``` ## 基础用法 ``` git status git add . git commit -m "更新代码" git push ``` ## 规范 分支类型与命名规范 ### 分支命名格式 | 分支类型 | 命名格式 | 示例 | |---------|---------|------| | 主分支 | `main` | `main` | | 开发分支 | `dev` | `dev` | | 功能分支 | `feat/<功能名>` | `feat/event`, `feat/stream` | | 热修复分支 | `hotfix/<问题名>` | `hotfix/event` | | 发布分支 | `release/<版本号>` | `release/v1.0.0` | ### 分支用途说明 | 分支类型 | 用途说明 | |---------|---------| | `main` | 稳定版本分支,直接对应生产环境代码 | | `dev` | 开发主分支,所有功能集成分支先合并到此分支 | | `feat/*` | 功能开发分支,用于开发新功能 | | `hotfix/*` | 热修复分支,用于紧急修复生产问题 | | `release/*` | 发布分支,用于版本发布准备 | ### 分支流程规则 #### 核心规则:dev 禁止合并到 main **重要约束:`dev` 分支** **禁止直接合并到 `main` 分支** - `dev` 是开发分支,代码未经充分测试,不适合直接发布到生产 - 所有合并到 `main` 的代码必须通过 `release/*` 分支或直接从 `hotfix/*` 分支合并 #### 标准合并流程 ``` 功能开发流程: feat/* → dev → release/* → main 热修复流程: hotfix/* → main (紧急情况可直接合并) hotfix/* → dev (同步修复到开发分支) ``` #### 各分支合并规则 | 从分支 | 合并到 | 是否允许 | 说明 | |-------|-------|---------|------| | `feat/*` | `dev` | ✅ 允许 | 功能开发完成后合并到开发分支 | | `dev` | `main` | ❌ 禁止 | dev 禁止直接合并到 main | | `dev` | `release/*` | ✅ 允许 | 开发分支可以合并到发布分支 | | `release/*` | `main` | ✅ 允许 | 发布分支通过测试后合并到 main | | `release/*` | `dev` | ✅ 允许 | 发布分支可同步回开发分支 | | `hotfix/*` | `main` | ✅ 允许 | 热修复可直接合并到 main | | `hotfix/*` | `dev` | ✅ 允许 | 热修复需同步到开发分支 | | `feat/*` | `main` | ❌ 禁止 | 功能分支禁止直接合并到 main | | `feat/*` | 其他 `feat/*` | ❌ 禁止 | 功能分支之间禁止互相合并 | ### 当前项目分支结构 ``` 本地分支: - dev (开发主分支,当前工作分支) - feat/event (事件功能分支) - feat/stream (流功能分支) - hotfix/event (事件热修复分支) - main (生产环境分支) 远程分支: - origin/main - origin/dev - origin/feat/event ``` ### Git 操作指南 #### 创建功能分支 ```bash # 从 main 创建功能分支 git checkout main git pull origin main git checkout -b feat/your-feature-name ``` #### 合并功能到 dev ```bash # 完成功能开发后,切换到 dev 分支 git checkout dev git pull origin dev # 合并功能分支 git merge feat/your-feature-name # 推送 dev 分支 git push origin dev ``` #### 创建发布分支 ```bash # 从 dev 创建发布分支 git checkout dev git pull origin dev git checkout -b release/v1.0.0 ``` #### 发布到 main ```bash # 在 release 分支完成测试后,合并到 main git checkout main git pull origin main git merge release/v1.0.0 git push origin main # 删除发布分支 git branch -d release/v1.0.0 git push origin --delete release/v1.0.0 ``` #### 热修复操作 ```bash # 从 main 创建热修复分支 git checkout main git pull origin main git checkout -b hotfix/issue-description # 修复完成后,合并到 main git checkout main git merge hotfix/issue-description git push origin main # 同时合并到 dev git checkout dev git merge hotfix/issue-description git push origin dev # 删除热修复分支 git branch -d hotfix/issue-description ```