gc-npm-package
Version:
一个智能的Git提交工具,帮助开发者快速、规范地提交代码,支持智能代码分析和标准化提交格式。仅支持macOS和Linux系统,Windows用户请使用WSL2或Git Bash。
287 lines (207 loc) • 7.1 kB
Markdown
# gc-npm-package
一个智能的Git提交工具,帮助开发者快速、规范地提交代码。
## 🖥️ 系统兼容性
- ✅ **完全支持**: macOS、Linux
- ✅ **推荐方案**: WSL2 (Windows用户)
- ❌ **不支持**: 原生Windows
- 🔧 **替代方案**: Git Bash (Windows用户)
> **注意**: 由于本工具基于Bash脚本开发,仅支持Unix-like系统。Windows用户建议使用WSL2或Git Bash来获得最佳体验。
## ✨ 功能特性
- 🚀 **智能提交类型识别** - 自动分析代码变更并推荐合适的提交类型
- 📝 **标准化提交格式** - 遵循Conventional Commits规范
- 🔍 **代码变更分析** - 智能分析文件类型和功能模块
- 🎨 **彩色输出** - 美观的命令行界面
- 📊 **变更统计** - 显示详细的文件变更统计信息
- 🚀 **一键推送** - 提交后可选择直接推送到远程仓库
## 📦 安装
### 系统要求
- **Node.js**: >= 12.0.0
- **操作系统**: macOS 10.14+ 或 Linux (Ubuntu 18.04+, CentOS 7+)
- **Shell环境**: Bash 4.0+
### 安装命令
```bash
npm install -g gc-npm-package
```
### Windows用户安装指南
由于本工具基于Bash脚本,Windows用户需要以下方案之一:
#### 方案1: 使用WSL2 (推荐)
```bash
# 1. 安装WSL2 (在PowerShell管理员模式下)
wsl --install
# 2. 重启电脑后,在WSL2中安装Node.js
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
# 3. 安装本工具
npm install -g gc-npm-package
```
#### 方案2: 使用Git Bash
```bash
# 1. 安装Git for Windows (包含Git Bash)
# 下载地址: https://git-scm.com/download/win
# 2. 在Git Bash中安装Node.js
# 下载地址: https://nodejs.org/
# 3. 在Git Bash中安装本工具
npm install -g gc-npm-package
```
## 🚀 使用方法
### 基本用法
```bash
gc [type] [scope] [description]
```
### 参数说明
- `type`: 提交类型(可选,默认为 "update")
- `feat`: 新功能
- `fix`: 修复bug
- `update`: 更新/优化
- `docs`: 文档更新
- `style`: 代码格式调整
- `refactor`: 代码重构
- `test`: 测试相关
- `chore`: 构建/工具相关
- `scope`: 影响范围(可选,默认为 "general")
- `description`: 提交描述(可选,会自动生成)
### 使用示例
#### 基础示例
```bash
# 基本使用(自动分析代码变更)
gc
# 指定类型和描述
gc feat userManage "新增用户管理功能"
# 指定类型、范围和描述
gc fix auth "修复登录验证问题"
# 只指定类型
gc docs
```
#### 高级示例
```bash
# 新功能开发
gc feat "新增用户注册功能"
gc feat auth "实现OAuth2.0认证"
# Bug修复
gc fix "修复内存泄漏问题"
gc fix ui "修复移动端显示异常"
# 代码重构
gc refactor "重构用户服务模块"
gc refactor utils "优化工具函数性能"
# 文档更新
gc docs "更新API文档"
gc docs readme "完善使用说明"
# 测试相关
gc test "添加单元测试"
gc test e2e "集成端到端测试"
# 构建工具
gc chore "更新构建配置"
gc chore deps "升级依赖包版本"
```
#### 实际工作流示例
```bash
# 1. 开发新功能
gc feat "实现用户登录功能"
# 2. 修复发现的问题
gc fix "修复登录状态丢失bug"
# 3. 优化代码
gc refactor "重构认证逻辑"
# 4. 添加测试
gc test "添加登录功能测试"
# 5. 更新文档
gc docs "更新登录API文档"
# 6. 发布版本
gc chore "发布v1.0.0版本"
```
## 🔧 工作流程
1. **检查Git状态** - 验证当前目录是否为Git仓库
2. **分析代码变更** - 智能分析修改的文件类型和功能
3. **生成提交信息** - 根据分析结果自动生成规范的提交信息
4. **确认提交** - 显示生成的提交信息供用户确认
5. **执行提交** - 添加文件并提交代码
6. **推送选项** - 可选择是否推送到远程仓库
## 🔍 智能分析功能
### 文件类型识别
- **前端文件**: `.vue`, `.js`, `.ts`, `.jsx`, `.tsx`
- **样式文件**: `.css`, `.scss`, `.less`, `.styl`
- **配置文件**: `.json`, `.yaml`, `.yml`, `.toml`
- **文档文件**: `.md`, `.txt`, `.rst`
### 功能模块识别
- **API层**: `src/api/`, `api/`, `services/`
- **组件**: `src/components/`, `components/`
- **页面**: `src/pages/`, `pages/`, `views/`
- **状态管理**: `src/store/`, `store/`, `state/`
- **路由**: `src/router/`, `router/`
- **工具函数**: `src/utils/`, `utils/`, `helpers/`
## 📁 文件结构
```
gc-npm-package/
├── gc # 主命令入口
├── git-commit.sh # 核心提交脚本
├── code-analyzer.sh # 代码分析脚本
└── package.json # 包配置文件
```
## 🎯 适用场景
- 个人项目开发
- 团队协作开发
- 开源项目维护
- 需要规范化Git提交的项目
## 🚨 常见问题
### Q: 命令找不到?
**A**: 确保已全局安装:`npm install -g gc-npm-package`
### Q: 权限错误?
**A**: 在macOS/Linux上可能需要:`sudo npm install -g gc-npm-package`
### Q: 脚本执行失败?
**A**: 确保脚本有执行权限:`chmod +x gc git-commit.sh code-analyzer.sh`
### Q: 推送失败?
**A**: 检查远程仓库配置:`git remote -v`
### Q: 如何自定义提交类型?
**A**: 目前支持8种标准类型,未来版本将支持自定义
### Q: Windows系统可以使用吗?
**A**: 原生Windows不支持,建议使用WSL2或Git Bash
### Q: WSL2中安装失败?
**A**: 确保在WSL2中安装了Node.js,并且网络连接正常
### Q: Git Bash中命令不工作?
**A**: 确保在Git Bash终端中运行,而不是在PowerShell或CMD中
## 🔧 配置选项
### 环境变量
```bash
# 设置默认提交类型
export GC_DEFAULT_TYPE="feat"
# 设置默认影响范围
export GC_DEFAULT_SCOPE="app"
# 禁用彩色输出
export GC_NO_COLOR="true"
```
### Git配置
```bash
# 设置用户信息
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# 设置默认编辑器
git config --global core.editor "code --wait"
```
## 🤝 贡献
欢迎提交Issue和Pull Request!
### 贡献指南
1. Fork 本仓库
2. 创建特性分支:`git checkout -b feature/AmazingFeature`
3. 提交更改:`gc feat "添加新功能"`
4. 推送到分支:`git push origin feature/AmazingFeature`
5. 创建Pull Request
## 📄 许可证
ISC License
## 🔗 相关链接
- [npm包页面](https://www.npmjs.com/package/gc-npm-package)
- [GitHub仓库](https://github.com/mengqc1995/gc-npm-package)
- [Conventional Commits规范](https://www.conventionalcommits.org/)
- [Git提交规范](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#-commit-message-format)
## 📈 更新日志
### v1.0.2
- ✨ 新增智能代码分析功能
- 🎨 优化命令行界面
- 📚 完善文档和示例
### v1.0.1
- 🐛 修复基础功能
- 📦 优化包结构
### v1.0.0
- 🎉 首次发布
- 🚀 基础Git提交功能
---
**让Git提交变得简单而规范!** 🎉
> 💡 **提示**: 使用 `gc --help` 查看帮助信息(如果支持的话)