Git工作流助手
一个强大的 Git 工作流自动化 VSCode 插件,提供快速创建标准化分支和自动化分支合并流程两大核心功能。采用模块化架构设计,代码简洁高效,让您的 Git 工作流更加高效、安全、智能。
✨ 功能特性
分支创建功能
- 🎯 快速创建分支:一键创建标准化命名的 Git 分支
- 📋 规范统一:统一团队分支命名规范(前缀/日期/描述_用户名)
- 🔧 灵活配置:支持自定义分支前缀和命名格式
- 👤 自动识别:自动获取 Git 用户名或使用自定义名称
- 📅 日期格式:支持多种日期格式(yyyyMMdd、yyyy-MM-dd、yyMMdd)
- 🔀 基分支选择:可选择任意本地或远程分支作为基础分支
- ✅ 输入验证:完整的输入验证,确保分支名称合法
- 💾 状态栏快捷:状态栏一键访问创建分支功能
分支合并功能
- 🚀 自动化合并流程:一键完成 Feature 分支到目标分支的合并
- ⚡ 快速提交合并:快速提交当前更改并合并到目标分支
- 🎯 智能分支检测:支持多种分支命名模式(feature、feat、bugfix、hotfix、fix)
- 🔧 灵活配置管理:支持自定义目标分支配置
- 🛡️ 合并冲突处理:智能检测和处理合并冲突,提供多种解决方案
- 🔒 并发控制:防止多个合并操作同时执行
- 🌐 远程分支验证:自动验证远程分支存在性
- 📊 进度条显示:实时显示合并进度,禁止手动操作Git
- 🔄 智能分支切换:自动处理本地/远程分支切换
通用特性
- 🔄 多种调用方式:支持命令面板、快捷键、SCM 面板等多种方式
- 📝 友好提示:详细的操作提示和错误信息
- 🏗️ 模块化架构:清晰的代码结构,易于维护和扩展
- ⚡ 高性能:轻量级实现,响应迅速
- 🛡️ 健壮性:完整的错误处理和输入验证
🆕 最新特性
✨ 最新功能
- 📊 进度条显示:合并过程中实时显示进度条,清晰展示每个步骤的执行状态
- 🚫 操作保护:合并过程中禁止手动操作Git,防止操作冲突
- 🔄 智能分支切换:自动检测本地/远程分支,不存在时自动创建
- 🛡️ 并发控制:防止多个合并操作同时执行,确保操作安全
- ✅ 错误恢复:合并失败时自动切回原分支,保证工作区状态安全
🏗️ 架构设计
插件采用模块化架构设计,代码结构清晰,职责分明:
核心模块
- GitOperations:Git 命令操作封装层,统一处理所有 Git 操作
- BranchManager:分支管理和验证逻辑,处理分支相关的业务逻辑
- ConfigurationManager:配置管理模块,处理目标分支等配置
- BranchConfigManager:分支创建配置管理,处理分支前缀等配置
- MergeWorkflow:合并流程编排,控制合并的完整流程
- BranchCreator:分支创建流程,处理分支创建的完整流程
- GitMergeService:主服务类,协调各个模块完成功能
架构优势
- ✅ 单一职责:每个模块专注于自己的职责
- ✅ 低耦合:模块间依赖清晰,易于维护
- ✅ 高内聚:相关功能集中在同一模块
- ✅ 易扩展:新功能可以轻松添加新模块
- ✅ 易测试:模块化设计便于单元测试
🚀 快速开始
使用方法
方法一:命令面板
- 按
Ctrl+Shift+P(Mac: Cmd+Shift+P)打开命令面板
- 输入 "Git工作流助手" 或相关命令名称
- 选择相应的命令执行:
- 创建功能分支:快速创建标准化命名的分支
- 合并Feature分支:执行完整的分支合并流程(带进度条)
- 配置管理:管理插件配置
方法二:快捷键
- 创建分支:
Ctrl+Alt+Shift+B(Mac: Cmd+Alt+Shift+B)
- 合并分支:
Ctrl+Alt+Shift+M(Mac: Cmd+Alt+Shift+M)
方法三:SCM面板
- 打开源代码管理面板
- 点击标题栏中的相应按钮即可快速操作
📦 主要功能
一、创建功能分支
快速创建符合团队规范的标准化分支名称。
操作流程
- 触发创建:通过快捷键、命令面板或 SCM 面板触发
- 选择前缀:从配置的前缀列表中选择(如 feature、bugfix、hotfix)
- 选择基分支:选择要基于的分支(默认显示当前分支)
- 输入描述:输入分支的描述信息(支持中英文、数字、下划线、短横线)
- 预览确认:查看生成的分支名称并确认
- 自动创建:自动创建分支并可选择是否切换
分支命名格式
前缀/日期/描述信息_用户名
使用示例
# 示例 1: 创建功能分支
feature/20250101/用户登录功能_john
# 示例 2: 创建修复分支
bugfix/20250101/修复登录bug_mary
# 示例 3: 创建热修复分支
hotfix/20250101/紧急修复支付异常_alex
特性说明
- 自动获取用户名:从 Git 配置自动读取,也可在设置中自定义
- 智能验证:实时验证分支名称的合法性
- 重复检测:自动检测分支是否已存在,提供切换或重新输入选项
- 灵活配置:支持多种日期格式和自定义前缀
二、合并Feature分支
采用模块化流程设计,全程显示进度条:
- 环境验证:检查 Git 仓库状态
- 分支验证:智能检查当前分支是否为功能分支
- 冲突预检:检查未提交的更改
- 目标分支选择:选择要合并到的目标分支
- 智能合并:
- 自动检测目标分支是否存在(本地/远程)
- 如果本地不存在,自动从远程创建
- 拉取最新代码
- 执行合并操作
- 带冲突检测的安全合并机制
- 冲突处理:如有冲突,提供多种解决方案
- 打开冲突文件在编辑器中编辑
- 中止合并操作并回滚
- 等待用户手动解决后继续
- 自动推送:合并成功后自动推送结果到远程
- 切回原分支:完成后自动切回原功能分支
进度显示:整个合并过程会显示进度条,实时展示当前执行步骤,并提醒用户不要手动操作Git。
⚙️ 配置选项
配置说明
目标分支配置
- gitWorkflowHelper.targetBranches:配置可选的目标分支列表(字符串数组)
分支前缀配置
- gitWorkflowHelper.branchPrefixes:配置分支前缀列表(字符串数组)
注意:配置已简化为字符串数组,不再需要 isDefault 字段,第一个前缀将作为默认值使用。
用户名配置
- gitWorkflowHelper.customGitName:自定义 Git 用户名(留空则使用 Git 配置)
日期格式配置
- gitWorkflowHelper.dateFormat:分支命名中的日期格式
yyyyMMdd:20250101(默认)
yyyy-MM-dd:2025-01-01
yyMMdd:250101
自动切换配置
- gitWorkflowHelper.autoCheckout:创建分支后是否自动切换(默认开启)
完整配置示例
{
"gitWorkflowHelper.targetBranches": ["uat", "pre"],
"gitWorkflowHelper.branchPrefixes": [
"feature",
"feat",
"bugfix",
"hotfix",
"fix"
],
"gitWorkflowHelper.customGitName": "",
"gitWorkflowHelper.dateFormat": "yyyyMMdd",
"gitWorkflowHelper.autoCheckout": true
}
方法一:使用配置管理命令(推荐)
- 按
Ctrl+Shift+P 打开命令面板
- 输入 "Git工作流助手: 配置管理"
- 插件会自动打开设置页面,您可以直接在设置中配置
方法二:VSCode设置
- 打开 VSCode 设置(
Ctrl+, 或 Cmd+,)
- 搜索 "Git工作流助手"
- 修改相应的配置项
方法三:settings.json
直接编辑 VSCode 的 settings.json 文件:
{
"gitWorkflowHelper.targetBranches": ["uat", "pre"],
"gitWorkflowHelper.branchPrefixes": [
"feature",
"bugfix",
"hotfix"
],
"gitWorkflowHelper.customGitName": "yourname",
"gitWorkflowHelper.dateFormat": "yyyyMMdd",
"gitWorkflowHelper.autoCheckout": true
}
🛡️ 安全特性
输入验证
- ✅ Git分支命名规则验证
- ✅ 提交信息长度和格式检查
- ✅ 配置项完整性验证
- ✅ 重复性检查和冲突检测
操作安全
- ✅ 合并前的全面环境检查
- ✅ 自动备份当前分支状态
- ✅ 操作失败时的自动回滚
- ✅ Git命令注入防护
- ✅ 权限验证机制
并发控制
- ✅ 静态锁机制防止多个合并操作同时执行
- ✅ 操作状态监控和管理
- ✅ 进度条显示,禁止手动操作Git
- ✅ 友好的并发提示信息
- ✅ 资源竞争检测
🔧 故障排除
常见问题
合并冲突
当遇到合并冲突时,插件会:
- 自动检测冲突文件:识别所有冲突状态码(UU, AA, DD等)
- 提供处理选项:
- 打开冲突文件:在编辑器中打开第一个冲突文件
- 中止合并:取消当前合并操作并回滚
- 手动解决后继续:等待用户解决冲突后继续
- 智能等待机制:监控冲突解决状态
- 自动提交:冲突解决后自动提交合并结果
分支检测失败
如果当前分支未被识别为功能分支:
- 检查分支名:确认分支名包含配置的模式
- 添加新模式:通过配置管理添加新的分支模式
- 验证配置:确认功能分支配置正确
- 团队规范:确保分支命名符合团队规范
远程分支不存在
如果目标分支在远程不存在:
- 自动创建:插件会自动创建本地分支并推送到远程
- 检查连接:验证远程仓库连接状态
- 确认名称:检查分支名称拼写正确
- 手动创建:如果自动创建失败,可以手动创建分支后重试
📈 性能优化
- ✅ 智能缓存:减少重复的Git命令调用
- ✅ 批量操作:合并多个Git操作减少开销
- ✅ 异步处理:提高UI响应速度
- ✅ 网络优化:减少远程分支检查次数
- ✅ 内存管理:更高效的资源使用
- ✅ 命令优化:使用更高效的Git命令
📝 版本信息
当前版本:v0.0.1
主要功能
- ✅ 快速创建标准化分支(支持自定义前缀、日期格式、用户名)
- ✅ 自动化Git分支合并流程(带进度条显示)
- ✅ 智能分支切换(自动处理本地/远程分支)
- ✅ 合并冲突处理(多种解决方案)
- ✅ 并发控制(防止操作冲突)
- ✅ 模块化架构设计(代码清晰易维护)