Git 分支管理策略
主分支(main/master)
主分支用于存储稳定的生产代码,所有发布版本都从该分支创建。禁止直接在主分支上开发新功能或修复问题。
开发分支(develop)
开发分支是日常工作的基础分支,所有新功能和问题修复都合并到该分支。开发完成后,通过 Pull Request 合并到主分支。
功能分支(feature/xxx)
每个新功能应在独立的功能分支上开发,分支命名规范为 feature/功能名称。功能开发完成后合并到开发分支。
修复分支(hotfix/xxx)
紧急修复生产环境问题使用修复分支,命名规范为 hotfix/问题描述。修复完成后同时合并到主分支和开发分支。
合并策略选择
普通合并(Merge Commit)
保留完整历史记录,适合需要跟踪详细变更的场景。执行命令:
bash
git checkout develop
git merge feature/xxx
变基合并(Rebase)
保持线性历史,适合清理提交记录。执行命令:
bash
git checkout feature/xxx
git rebase develop
快进合并(Fast-Forward)
当分支间无冲突时自动执行,适合简单的功能合并。添加 --ff-only 参数强制使用:
bash
git merge --ff-only feature/xxx
Java 项目特殊配置
忽略文件配置(.gitignore)
Java 项目需忽略编译输出和 IDE 文件:
/target/
*.class
*.jar
*.war
.idea/
*.iml
分支命名规范
团队协作时建议统一前缀:
feature/login-module
hotfix/security-patch
release/v1.2.0
冲突解决流程
检出目标分支确保为最新版本:
bash
git checkout develop
git pull origin develop
尝试合并并解决冲突:
bash
git merge feature/xxx
# 手动编辑冲突文件后标记为已解决
git add resolved_file.java
git commit
自动化工具集成
持续集成(CI)检查
配置 Jenkins/GitHub Actions 在合并前自动运行:
yaml
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build with Maven
run: mvn clean package
代码质量门禁
通过 SonarQube 设置合并条件:
bash
mvn sonar:sonar \
-Dsonar.projectKey=my_project \
-Dsonar.branch.name=feature/xxx