zongheng-git
Version:
解决团队协作分支冲突的全局npm工具包
200 lines (136 loc) • 4.71 kB
Markdown
# 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用户信息和远程仓库地址。