JavaProjectRepo/framework/docs/develop-framework分支Git操作指南.md
2025-11-09 16:28:59 +08:00

5.5 KiB
Raw Blame History

develop-framework 分支 Git 操作指南(面向 main-framework 主分支)

适用范围:D:/JavaProjectSpace/framework 项目Spring Boot 3.3.x可执行 JAR远程仓库http://121.37.111.42:3000/ThbTech/JavaProjectRepo.git 主分支:main-framework;开发分支:develop-framework

分支策略与目标

  • main-framework:稳定发布分支,受保护(建议启用 PR 合并、代码审查、CI 通过)。
  • develop-framework:日常开发分支,合并至主分支前需完成构建与自测。
  • 推荐临时特性分支:feature/<name>develop-framework 拉出,完成后合并回 develop-framework

初始仓库设置

  • 设置用户信息(确保提交署名一致):
git config user.name "zhengsl"
git config user.email "13910913995@163.com"
  • 关联远程(如已有请忽略):
git remote set-url origin http://121.37.111.42:3000/ThbTech/JavaProjectRepo.git
  • 拉取远程分支列表并跟踪:
git fetch --all --prune

开发日常流程(在 develop-framework

  • 切换到开发分支并更新:
git checkout develop-framework
git pull --ff-only
  • 提交更改(遵循约定式提交,示例):
git add .
git commit -m "feat: 支持可执行JAR打包并优化资源复制逻辑"
  • 推送到远程:
git push -u origin develop-framework

合并到主分支(首选 PR 流程)

  • 方式一:在 Gitea 发起 PR推荐

    • 目标:develop-framework -> main-framework
    • 检查 CI 构建通过、代码评审通过后合并。
    • 合并策略建议:SquashRebase and merge 保持主分支提交整洁。
  • 方式二:命令行快速合并(仅在无保护、需要紧急修复时使用)

# 确保主分支最新
git checkout main-framework
git pull --ff-only

# 将主分支变更应用到开发分支,减少合并冲突
git checkout develop-framework
git rebase main-framework
# 解决冲突后:
#   git add <files>
#   git rebase --continue

# 回到主分支并合并(优先快进)
git checkout main-framework
git merge --ff-only develop-framework || git merge --no-ff develop-framework

# 推送主分支
git push origin main-framework

版本与标签(发布规范)

  • 采用语义化版本:vMAJOR.MINOR.PATCH(示例:v1.0.0)。
  • 打标签并推送:
# 核心检查:构建通过、基本功能自测 OK
mvn -B -DskipTests clean package

# 标签与推送
git tag -a v1.0.0 -m "release: framework v1.0.0 可执行JAR"
git push origin v1.0.0

构建校验(必须)

  • 本地快速验证:
# 打包
mvn -q -DskipTests package
# 启动dev
java -jar target/platform-1.0.jar --spring.profiles.active=dev
# 浏览器访问(默认端口)
http://localhost:8093/
  • 如果使用前端集成:
    • POM 已配置在 generate-resources 阶段执行 npm installnpm run build:mvn
    • 静态资源复制(frontend/dist -> src/main/resources/static)可通过 maven-resources-plugin 控制;必要时启用/关闭 <skip> 或使用 Maven Profile 控制。

分支保护与权限(建议在 Gitea 设置)

  • 保护 main-framework
    • 禁止直接 push 到主分支,仅允许通过 PR 合并。
    • 最少 1 人审核CI 必须通过。
    • 禁止强制推送force push
  • 标签权限:仅发布管理员可打 release 标签。

常见场景与命令速查

  • 同步远程状态(清理过期分支):
git fetch --all --prune
  • 创建特性分支:
git checkout develop-framework
git pull --ff-only
git checkout -b feature/<name>
  • 将特性分支合并回开发分支:
git checkout develop-framework
git merge --no-ff feature/<name>
git push origin develop-framework
  • 更新主分支并合并开发分支CLI
git checkout main-framework
git pull --ff-only
git merge --ff-only develop-framework || git merge --no-ff develop-framework
git push origin main-framework
  • 回滚错误提交:
# 回滚指定提交(保留历史)
git revert <commit_sha>
# 或回退到某版本(谨慎,可能重写历史)
git reset --hard <commit_sha>
git push -f origin <branch>   # 若分支受保护,需取消保护或走 PR revert

冲突处理指南

  • Rebase 阶段冲突:
    • 编辑冲突文件,确保以 main-framework 为基线保留正确逻辑。
    • 逐个解决后:git add <file>,继续:git rebase --continue
  • Merge 阶段冲突:
    • 优先在 develop-framework 解决,再合并到 main-framework,减少主分支污染。

提交规范建议Conventional Commits

  • 前缀示例:featfixdocsrefactorperftestbuildchore
  • 示例:feat: 前端静态资源复制支持 Profile 开关

CI/CD 建议

  • CI
    • mvn -B -DskipTests clean package
    • 单元测试、依赖安全扫描、代码质量检查
  • CD
    • 根据标签构建镜像,注入敏感配置(环境变量/密钥管理)。

问题排查

  • 构建失败:检查 pom.xml 插件配置,先本地运行 mvn -e package 查看详细栈。
  • 端口冲突:调整 server.port 或释放占用端口。
  • npm 警告/冲突:在 frontend/ 内单独 npm install && npm run build,再复制到后端静态目录。

如需将资源复制与文档生成改为按需开关Maven Profile可在 pom.xml 中添加 Profile 并通过 -P <profile> 控制。需要我帮助你落地 Profile 与分支保护脚本,请告诉我你的偏好(例如是否必须走 PR