UNPKG

zongheng-git

Version:

解决团队协作分支冲突的全局npm工具包

200 lines (136 loc) 4.71 kB
# Zongheng Git 一个解决团队协作分支冲突的全局npm工具包,帮助开发团队自动管理版本分支,避免多人同时开发时的分支冲突问题。 ## 🚀 功能特性 - **自动版本管理**: 基于最新标签自动计算下一个版本号 - **智能分支检测**: 自动检查远程分支是否存在,避免冲突 - **交互式操作**: 友好的命令行交互界面 - **静默模式**: 支持自动化脚本使用 - **大版本升级**: 支持手动指定大版本升级 - **工作区检查**: 确保操作前工作区干净 ## 📦 安装 ### 全局安装 ```bash npm install -g zongheng-git ``` ### 本地安装 ```bash npm install zongheng-git ``` ## 🎯 使用方法 ### 基本用法 在项目根目录下执行: ```bash # 交互式模式(推荐) zh-git # 或者 zh-git dev ``` ### 静默模式 ```bash # 自动处理,无需用户交互 zh-git dev --quiet ``` ### 检查状态 ```bash # 查看当前状态,不执行任何操作 zh-git check ``` ## 🔧 工作流程 ### 1. 交互式模式流程 1. **检查工作区**: 确保当前工作区干净,没有未提交的更改 2. **获取最新标签**: 自动获取远程仓库的最新标签版本 3. **版本选择**: 询问是否进行大版本升级 4. **分支检查**: 检查目标分支是否已存在 5. **用户确认**: 根据情况提供不同的操作选项 6. **执行操作**: 根据用户选择执行相应操作 ### 2. 操作选项 - **拉取已存在分支**: 如果远程分支已存在,直接拉取到本地 - **创建新分支**: 基于最新标签创建新的版本分支 - **手动输入版本**: 允许用户手动指定版本号 ### 3. 版本规则 - **小版本升级**: `6.3.2``6.3.3` - **大版本升级**: `6.3.2``7.0.0` - **手动版本**: 用户可指定任意版本号 ## 📋 使用示例 ### 场景1: 正常开发流程 ```bash $ zh-git ╔══════════════════════════════════════════════════════════════╗ ║ 纵横Git工具 ║ ║ Zongheng Git Tool ║ ╚══════════════════════════════════════════════════════════════╝ 检查工作区状态... ✓ 工作区干净 获取最新标签... ✓ 找到最新标签: 6.3.2 ? 是否进行大版本升级? (例如: 6.3.2 -> 7.0.0) No 当前最新标签: 6.3.2 下一个版本: 6.3.3 目标分支: 6.3.3 检查远程分支... ✓ 远程分支 6.3.3 不存在,可以创建 ? 请选择操作: 创建新分支 6.3.3 (基于标签 6.3.2) ? 确认创建分支 6.3.3 (版本: 6.3.3)? Yes 正在基于标签 6.3.2 创建分支 6.3.3... ✓ 成功创建并推送分支 6.3.3 🎉 操作完成!当前分支: 6.3.3 ``` ### 场景2: 分支已存在 ```bash $ zh-git 当前最新标签: 6.3.2 下一个版本: 6.3.3 目标分支: 6.3.3 检查远程分支... ⚠️ 远程分支 6.3.3 已存在 ? 请选择操作: 拉取已存在的远程分支 6.3.3 ? 确认拉取远程分支 6.3.3? Yes 正在拉取远程分支 6.3.3... ✓ 成功拉取分支 6.3.3 🎉 操作完成!当前分支: 6.3.3 ``` ### 场景3: 大版本升级 ```bash $ zh-git 当前最新标签: 6.3.2 下一个版本: 7.0.0 目标分支: 7.0.0 ? 是否进行大版本升级? (例如: 6.3.2 -> 7.0.0) Yes ? 请选择操作: 创建新分支 7.0.0 (基于标签 6.3.2) ? 确认创建分支 7.0.0 (版本: 7.0.0)? Yes 正在基于标签 6.3.2 创建分支 7.0.0... ✓ 成功创建并推送分支 7.0.0 🎉 操作完成!当前分支: 7.0.0 ``` ## 🛠️ 开发 ### 构建项目 ```bash npm run build ``` ### 开发模式 ```bash npm run dev ``` ### 测试 ```bash npm test ``` ## 📝 配置 ### 环境要求 - Node.js >= 16.0.0 - Git 2.0+ ### 依赖项 - `commander`: 命令行参数解析 - `inquirer`: 交互式命令行界面 - `simple-git`: Git操作封装 - `semver`: 语义化版本处理 - `chalk`: 终端颜色输出 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📄 许可证 MIT License ## 🔗 相关链接 - [语义化版本规范](https://semver.org/) - [Git 分支管理最佳实践](https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows) --- **注意**: 使用前请确保已正确配置Git用户信息和远程仓库地址。