Git合并助手
一个自动化Git分支合并流程的VSCode插件,让您的Git工作流更加高效、安全、智能。
✨ 功能特性
- 🚀 自动化合并流程:一键完成Feature分支到主分支的合并
- ⚡ 快速提交合并:快速提交当前更改并合并到目标分支
- 🎯 智能分支检测:支持多种分支命名模式(feature、feat、bugfix、hotfix、fix)
- 🔧 灵活配置管理:支持自定义主分支和目标分支配置
- 🛡️ 合并冲突处理:智能检测和处理合并冲突
- 🔒 并发控制:防止多个合并操作同时执行
- 🌐 远程分支验证:自动验证远程分支存在性
- 📊 环境验证:全面的Git环境检查
- 🔄 多种调用方式:支持命令面板、右键菜单、SCM面板等多种方式
- 📝 友好提示:详细的操作提示和错误信息
🆕 最新改进 (v1.1.5)
🔧 合并冲突检测和处理
- ✅ 自动冲突检测:智能识别合并冲突
- ✅ 冲突处理选项:提供打开文件、中止合并、手动解决等选项
- ✅ 等待机制:支持用户分步解决冲突
- ✅ 自动提交:冲突解决后自动提交合并结果
🌿 改进的分支检查逻辑
- ✅ 多种分支模式:支持feature、feat、bugfix、hotfix、fix等
- ✅ 自定义规则:可配置分支命名模式
- ✅ 灵活匹配:更智能的分支识别机制
✅ 配置验证机制
- ✅ 分支名称验证:检查Git分支命名规则合规性
- ✅ 重复性检查:防止添加重复配置
- ✅ 远程验证:验证分支在远程仓库中的存在性
- ✅ 输入验证:限制输入长度和格式
🔒 并发控制
- ✅ 操作锁定:防止多个合并操作同时执行
- ✅ 状态管理:智能的操作状态跟踪
- ✅ 友好提示:清晰的并发操作提示
🌐 完善的远程分支检查
- ✅ 扩展支持:支持main、master、release、develop
- ✅ 存在性验证:使用git ls-remote验证分支
- ✅ 优雅降级:检测失败时的友好提示
- ✅ 自定义主分支:支持用户输入任意主分支名
🚀 快速开始
使用方法
方法一:命令面板
- 按
Ctrl+Shift+P
打开命令面板
- 输入 "Git合并助手" 或相关命令名称
- 选择相应的命令执行:
- 合并Feature分支:执行完整的分支合并流程
- 快速提交并合并:快速提交更改并执行合并
- 配置管理:管理插件配置
方法二:右键菜单
- 在资源管理器中右键文件夹
- 在编辑器中右键
- 选择相应的Git合并命令
方法三:SCM面板
📦 主要功能
合并Feature分支
自动执行以下流程:
- 环境检查:验证Git仓库状态和配置
- 分支验证:检查当前分支是否为功能分支
- 冲突预检:检查未提交的更改
- 主分支更新:切换到主分支并拉取最新代码
- 安全合并:带冲突检测的智能合并
- 冲突处理:如有冲突,提供多种解决方案
- 推送结果:自动推送合并结果到远程
快速提交并合并
快速完成提交和合并:
- 输入验证:验证提交信息格式和长度
- 暂存提交:暂存所有更改并提交
- 合并流程:执行完整的分支合并流程
- 并发控制:防止重复操作
配置管理
全面的配置管理功能:
- 主分支设置:支持预设和自定义主分支
- 目标分支管理:添加、删除、查看目标分支
- 功能分支模式:配置分支命名规则
- 自动检测开关:控制主分支自动检测
- 分步重置:支持选择性重置配置
🆕 新增功能
Git环境验证
- 检查Git仓库状态
- 验证远程仓库连接
- 检查主分支配置
- 验证目标分支配置
- 检查功能分支模式配置
当前状态查看
- 显示当前分支信息
- 显示主分支配置
- 显示是否为功能分支
- 显示未提交更改状态
⚙️ 配置选项
主分支配置
- gitMergeHelper.mainBranch:设置主分支名称(支持任意自定义名称)
- gitMergeHelper.autoDetectMainBranch:是否自动检测主分支(默认开启)
目标分支配置
- gitMergeHelper.targetBranches:配置可选的目标分支列表
🆕 功能分支配置
- gitMergeHelper.featureBranchConfig:配置功能分支命名规则
默认配置:
{
"gitMergeHelper.mainBranch": "master",
"gitMergeHelper.autoDetectMainBranch": true,
"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命令注入防护
并发控制
- 防止多个合并操作同时执行
- 操作状态锁定机制
- 友好的并发提示信息
🔧 故障排除
常见问题
合并冲突
当遇到合并冲突时,插件会:
- 自动检测冲突文件
- 提供处理选项:
- 打开冲突文件:在编辑器中打开第一个冲突文件
- 中止合并:取消当前合并操作
- 手动解决后继续:等待用户解决冲突后继续
分支检测失败
如果当前分支未被识别为功能分支:
- 检查分支名是否包含配置的模式
- 通过配置管理添加新的分支模式
- 确认分支命名符合团队规范
远程分支不存在
如果配置的主分支在远程不存在:
- 检查远程仓库连接
- 确认分支名称拼写正确
- 使用自动检测功能
- 手动配置正确的主分支名
📊 性能优化
- 减少不必要的Git命令调用
- 智能缓存配置信息
- 优化远程分支检查逻辑
- 异步操作处理
📝 更新日志
v1.1.5 (最新)
- 🆕 添加合并冲突检测和处理机制
- 🆕 改进分支检查逻辑,支持多种分支模式
- 🆕 添加配置验证机制
- 🆕 实现并发控制
- 🆕 完善远程分支检查
- 🆕 新增Git环境验证功能
- 🆕 新增当前状态查看功能
- 🔧 优化用户体验和错误处理
- 🔧 提升代码质量和安全性
查看 CHANGELOG.md 了解完整的版本更新历史。
📚 相关文档
🤝 贡献
欢迎提交Issue和Pull Request!
开发环境设置
# 克隆仓库
git clone https://github.com/Leo-Wei105/git-merge-helper.git
# 安装依赖
npm install
# 编译代码
npm run compile
# 打包插件
npm run build
📄 许可证
MIT License - 查看 LICENSE 文件了解详情。
🔗 相关链接