Skip to content

feeltens/git-merge-flow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

114 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌊 git-merge-flow

Git 中间分支合流管理系统

🚀 让多分支并行开发、共用测试环境变得简单高效

Java Spring Boot License MySQL PRs Welcome

核心价值功能特性效果预览快速开始技术栈常见问题

git-merge-flow效果图

💎 核心价值

🎯 解决什么问题?

在实际开发中,团队经常面临这样的困境:

现状 痛点
📋 多个需求并行开发 每个需求一个分支
🧪 多个测试任务同时进行 需要频繁切换部署
💰 但测试环境只有一套 手动合并分支繁琐易错

git-merge-flow 通过「中间分支」概念,自动将多个开发分支合并到统一的环境分支(如 dev_mixtest_mix),实现:

  • 一键合并 - 告别手动 merge 的繁琐操作
  • 冲突可视化 - Web 界面直接解决代码冲突
  • 灵活管理 - 随时添加/移除分支,自动重新合并

🌊 名称释义

名称 含义
git-merge-flow git(管理对象)+ merge(合并)+ flow(持续流动的合并流程)
合流 如同河流分支汇入主干,多个开发分支汇聚到中间分支

✨ 功能特性

功能 描述
🔀 中间分支管理 自动管理 dev_mixtest_mixpre_mix 等环境分支
🔄 一键重新合并 核心功能!基于主分支重建中间分支,依次合并所有分支
🌿 分支操作 新建分支、拉取远程分支、批量清理无效分支
🏢 多工程支持 同时管理多个 Git 仓库
👥 权限管理 用户 + 工程级别的细粒度权限控制
🔌 多平台适配 支持 GitLab (v18.3+) 和阿里云 CodeUp
🖥️ 可视化界面 基于 Vue.js + Element UI 的友好 Web 界面
🛠️ 冲突处理 Web 在线解决 或 自动生成脚本手动处理
📝 操作日志 完整记录所有分支操作历史

🖼️ 效果预览

工程管理 分支管理
工程管理 分支管理
Web 代码冲突解决 Web 代码提交推送
web代码冲突解决 web代码提交并推送
手动处理冲突脚本 一键重新合并成功
手动处理冲突 自动合并成功
用户列表 用户权限分配
用户列表 用户权限管理

📸 查看完整效果图 →


🔄 核心功能:重新合并

「重新合并」 是 git-merge-flow 最核心的功能:

  1. 🗑️ 删除旧的中间分支
  2. 🌱 基于主分支创建新的中间分支
  3. 🔀 依次合并所有已添加的分支
  4. ⚠️ 遇到冲突时暂停,提供解决方案
重新合并流程

重新合并内部逻辑流程图


🚀 快速开始

📋 环境要求

软件 版本
JDK 1.8+
MySQL 8.0+
Maven 3.6+

1️⃣ 初始化数据库

# 创建数据库
mysql -u root -p -e "CREATE DATABASE git_merge_flow DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

# 导入表结构
mysql -u root -p git_merge_flow < doc/sql/git_merge_flow.sql

2️⃣ 获取 Git API 令牌

🦊 GitLab 配置

访问:http://your-gitlab-domain/-/user_settings/personal_access_tokens

勾选权限:

  • api
  • read_repository
  • write_repository
☁️ 阿里云 CodeUp 配置

访问:https://account-devops.aliyun.com/settings/personalAccessToken

3️⃣ 修改配置文件

编辑 src/main/resources/application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/git_merge_flow?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
    username: your_username
    password: your_password

merge-flow:
  gitService: gitlab  # 或 codeup

gitlab:
  api:
    baseUrl: http://your-gitlab-domain
    accessToken: your-access-token

4️⃣ 启动项目

# 编译打包
mvn clean package -DskipTests

# 启动
java -jar target/git-merge-flow-1.0-SNAPSHOT.jar

5️⃣ 访问系统

🌐 浏览器打开:http://localhost:18081

📝 默认管理员账号:admin / admin123


🛠️ 技术栈

类型 技术
🖥️ 后端框架 Spring Boot 2.2.1
🎨 前端框架 Vue.js 2.6 + Element UI 2.15
📄 模板引擎 Thymeleaf
🗄️ 数据库 MySQL 8.0
🔗 ORM MyBatis
🔐 认证授权 Sa-Token
🔧 Git 操作 JGit
🔌 Git API GitLab API / CodeUp OpenAPI

📂 项目结构

git-merge-flow/
├── src/main/java/com/feeltens/git/
│   ├── controller/          # 🎮 控制器层
│   ├── service/             # 💼 业务逻辑层
│   ├── mapper/              # 🗄️ 数据访问层
│   ├── entity/              # 📦 实体类
│   ├── oapi/                # 🔌 Git API 适配器
│   ├── config/              # ⚙️ 配置类
│   └── util/                # 🔧 工具类
├── src/main/resources/
│   ├── templates/           # 🎨 页面模板
│   ├── static/              # 📁 静态资源
│   └── application.yml      # ⚙️ 配置文件
└── doc/
    ├── img/                 # 🖼️ 效果图
    └── sql/                 # 🗄️ 数据库脚本

💾 数据库表说明

表名 说明
git_organization Git 组织信息
git_project Git 工程信息
git_branch Git 原始分支
git_mix_branch Git 中间分支
git_mix_branch_item 中间分支包含的分支列表
sys_user 系统用户
sys_user_role 用户角色关联
sys_user_project_perm 用户工程权限

❓ 常见问题

💡 git-merge-flow 适合什么场景?

核心场景:多个开发分支需要部署到同一套测试环境

典型用例

  • 🏢 企业内部多需求并行开发
  • 🧪 QA 需要同时测试多个功能
  • 💰 测试环境资源有限,无法为每个分支单独部署

设计理念:小而美的工具,专注解决一个痛点

🔌 支持 GitHub 吗?

暂不支持

原因:

  • 🏢 GitLab:企业私有部署首选
  • ☁️ CodeUp:云托管方案
  • 🌐 GitHub:主要用于开源项目,较少有多分支合并场景

欢迎 PR 贡献!

⚙️ 支持哪些环境?可以自定义吗?

默认环境devtestpre

自定义方法:修改 com.feeltens.git.enums.EnvEnum 枚举类

📝 中间分支命名规则可以改吗?

可以! 默认:dev_mixtest_mixpre_mix

修改位置GitFlowServiceImpl.getMixBranchName() 方法

🔗 可以集成 Jenkins 实现 CI/CD 吗?

完全可以!

GitFlowService#remergeMixBranch 方法后,通过 Spring 事件机制触发 Jenkins 部署。

参考:dev_jenkins 分支的 JenkinsController#testJenkins 示例


� 参考资料


📄 开源协议

本项目基于 GPL-3.0 协议开源。


⭐ 如果这个项目对您有帮助,请给个 Star 支持一下!

Made with ❤️ by feeltens

Copyright © 2025 git-merge-flow

About

Git中间分支合并管理工具

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors