Git合并助手
一个自动化Git分支合并流程的VSCode插件,采用模块化架构设计,让您的Git工作流更加高效、安全、智能。
✨ 功能特性
- 🚀 自动化合并流程:一键完成Feature分支到主分支的合并
- ⚡ 快速提交合并:快速提交当前更改并合并到目标分支
- 🎯 智能分支检测:支持多种分支命名模式(feature、feat、bugfix、hotfix、fix)
- 🔧 灵活配置管理:支持自定义主分支和目标分支配置
- 🛡️ 合并冲突处理:智能检测和处理合并冲突,提供多种解决方案
- 🔒 并发控制:防止多个合并操作同时执行
- 🌐 远程分支验证:自动验证远程分支存在性
- 📊 环境验证:全面的Git环境检查和状态监控
- 🔄 多种调用方式:支持命令面板、右键菜单、SCM面板等多种方式
- 📝 友好提示:详细的操作提示和错误信息
- 🏗️ 模块化架构:清晰的代码结构,易于维护和扩展
🆕 最新改进 (v1.2.0)
🏗️ 架构重构
- ✅ 模块化设计:将代码重构为专业化类
GitOperations
:Git命令操作封装
BranchManager
:分支管理和验证
ConfigurationManager
:配置管理
MergeWorkflow
:合并流程编排
UIHelper
:用户界面交互
🔧 新增功能
- ✅ Git环境验证:全面检查Git仓库状态、远程连接、配置完整性
- ✅ 当前状态查看:实时显示分支信息、配置状态、未提交更改
- ✅ 增强并发控制:静态锁机制,防止操作冲突
🛡️ 安全合并机制
- ✅ 智能冲突检测:自动识别合并冲突(UU, AA, DD等状态码)
- ✅ 冲突处理选项:提供打开文件、中止合并、手动解决等选项
- ✅ 等待机制:支持用户分步解决冲突
- ✅ 自动提交:冲突解决后自动提交合并结果
🎯 用户体验提升
- ✅ 简化配置界面:分步式配置向导,预设选项和自定义输入结合
- ✅ 增强错误处理:详细错误诊断,自动回滚机制
- ✅ 智能提示系统:操作步骤提示,配置建议和最佳实践
📈 性能优化
- ✅ 减少Git命令调用:智能缓存和批量操作
- ✅ 异步操作处理:提高响应速度
- ✅ 优化远程检查:减少网络请求,更高效的资源管理
🚀 快速开始
使用方法
方法一:命令面板
- 按
Ctrl+Shift+P
打开命令面板
- 输入 "Git合并助手" 或相关命令名称
- 选择相应的命令执行:
- 合并Feature分支:执行完整的分支合并流程
- 快速提交并合并:快速提交更改并执行合并
- 配置管理:管理插件配置
方法二:右键菜单
- 在资源管理器中右键文件夹
- 在编辑器中右键
- 选择相应的Git合并命令
方法三:SCM面板
📦 主要功能
合并Feature分支
采用重构后的模块化流程:
- 环境验证:全面检查Git仓库状态和配置完整性
- 分支验证:智能检查当前分支是否为功能分支
- 冲突预检:检查未提交的更改和潜在冲突
- 主分支更新:安全切换到主分支并拉取最新代码
- 智能合并:带冲突检测的安全合并机制
- 冲突处理:如有冲突,提供多种解决方案
- 打开冲突文件在编辑器中编辑
- 中止合并操作并回滚
- 等待用户手动解决后继续
- 自动推送:合并成功后自动推送结果到远程
快速提交并合并
优化的快速操作流程:
- 变更检测:自动检测未提交的更改
- 输入验证:验证提交信息格式和长度
- 自动暂存:暂存所有更改并提交
- 合并确认:询问是否继续执行合并流程
- 流程集成:无缝集成到完整合并流程
配置管理
全面的配置管理系统:
- 主分支设置:支持预设选项和自定义输入
- master、main、release、develop预设选项
- 自定义分支名称输入
- 远程分支存在性验证
- 目标分支管理:动态管理目标分支列表
- 添加新的目标分支
- 删除现有目标分支
- 分支描述和验证
- 功能分支模式:配置分支命名规则
- 自动检测开关:控制主分支自动检测
- 配置重置:支持选择性重置配置
🆕 新增功能
Git环境验证
全面的环境检查功能:
- ✅ 检查Git仓库状态
- ✅ 验证远程仓库连接
- ✅ 检查主分支配置有效性
- ✅ 验证目标分支配置
- ✅ 检查功能分支模式配置
- ✅ 提供详细的验证报告
当前状态查看
实时状态监控:
- ✅ 显示当前分支信息
- ✅ 显示主分支配置
- ✅ 显示是否为功能分支
- ✅ 显示未提交更改状态
- ✅ 显示配置完整性状态
⚙️ 配置选项
主分支配置
- gitMergeHelper.mainBranch:设置主分支名称(支持任意自定义名称)
- gitMergeHelper.autoDetectMainBranch:是否自动检测主分支(默认关闭)
目标分支配置
- gitMergeHelper.targetBranches:配置可选的目标分支列表
功能分支配置
- gitMergeHelper.featureBranchConfig:配置功能分支命名规则
默认配置:
{
"gitMergeHelper.mainBranch": "master",
"gitMergeHelper.autoDetectMainBranch": false,
"gitMergeHelper.targetBranches": [
{
"name": "uat",
"description": "测试环境"
},
{
"name": "pre",
"description": "预发布环境"
}
],
"gitMergeHelper.featureBranchConfig": {
"patterns": ["feature", "feat", "bugfix", "hotfix", "fix"],
"description": "功能分支命名模式"
}
}
配置方式
方法一:使用配置管理命令(推荐)
- 按
Ctrl+Shift+P
打开命令面板
- 输入 "Git合并助手: 配置管理"
- 选择相应的配置操作:
- 设置主分支:选择预设分支或自定义输入
- 管理目标分支:添加、删除、查看目标分支
- 配置功能分支模式:管理分支命名模式
- 切换自动检测:开启/关闭主分支自动检测
- 重置配置:选择性重置配置项
- 查看当前配置:显示完整配置信息
方法二:VSCode设置
- 打开VSCode设置(
Ctrl+,
)
- 搜索 "Git合并助手"
- 修改相应的配置项
方法三:settings.json
{
"gitMergeHelper.mainBranch": "main",
"gitMergeHelper.autoDetectMainBranch": true,
"gitMergeHelper.targetBranches": [
{
"name": "dev",
"description": "开发环境"
},
{
"name": "uat",
"description": "测试环境"
},
{
"name": "pre",
"description": "预发布环境"
},
{
"name": "prod",
"description": "生产环境"
}
],
"gitMergeHelper.featureBranchConfig": {
"patterns": ["feature", "feat", "bugfix", "hotfix", "fix", "task"],
"description": "功能分支命名模式"
}
}
🛡️ 安全特性
输入验证
- ✅ Git分支命名规则验证
- ✅ 提交信息长度和格式检查
- ✅ 配置项完整性验证
- ✅ 重复性检查和冲突检测
操作安全
- ✅ 合并前的全面环境检查
- ✅ 自动备份当前分支状态
- ✅ 操作失败时的自动回滚
- ✅ Git命令注入防护
- ✅ 权限验证机制
并发控制
- ✅ 静态锁机制防止多个合并操作同时执行
- ✅ 操作状态监控和管理
- ✅ 友好的并发提示信息
- ✅ 资源竞争检测
🔧 故障排除
常见问题
合并冲突
当遇到合并冲突时,插件会:
- 自动检测冲突文件:识别所有冲突状态码(UU, AA, DD等)
- 提供处理选项:
- 打开冲突文件:在编辑器中打开第一个冲突文件
- 中止合并:取消当前合并操作并回滚
- 手动解决后继续:等待用户解决冲突后继续
- 智能等待机制:监控冲突解决状态
- 自动提交:冲突解决后自动提交合并结果
分支检测失败
如果当前分支未被识别为功能分支:
- 检查分支名:确认分支名包含配置的模式
- 添加新模式:通过配置管理添加新的分支模式
- 验证配置:确认功能分支配置正确
- 团队规范:确保分支命名符合团队规范
远程分支不存在
如果配置的主分支在远程不存在:
- 检查连接:验证远程仓库连接状态
- 确认名称:检查分支名称拼写正确
- 使用自动检测:开启主分支自动检测功能
- 手动配置:通过配置管理设置正确的主分支名
环境验证失败
使用新增的环境验证功能:
- 运行验证:通过配置管理执行环境验证
- 查看报告:检查详细的验证报告
- 修复问题:根据报告修复配置问题
- 重新验证:确认所有问题已解决
📈 性能优化
- ✅ 智能缓存:减少重复的Git命令调用
- ✅ 批量操作:合并多个Git操作减少开销
- ✅ 异步处理:提高UI响应速度
- ✅ 网络优化:减少远程分支检查次数
- ✅ 内存管理:更高效的资源使用
- ✅ 命令优化:使用更高效的Git命令
📝 更新日志
v1.2.0 (最新)
- 🏗️ 架构重构:模块化设计,代码结构更清晰
- 🆕 新增功能:Git环境验证、当前状态查看、增强并发控制
- 🛡️ 安全改进:智能冲突检测、增强输入验证、操作安全机制
- 🎯 体验提升:简化配置界面、增强错误处理、智能提示系统
- 📈 性能优化:减少命令调用、异步处理、网络优化
- 📋 配置增强:动态分支管理、模式配置、自动检测机制
查看 CHANGELOG.md 了解完整的版本更新历史。