long-git-cli
Version:
A CLI tool for Git tag management.
90 lines (73 loc) • 2.5 kB
Markdown
# Long CLI
一个支持 Bitbucket/GitHub/GitLab 的 Git tag/commit 自动化命令行工具,基于 TypeScript,结构高度可扩展。
## 安装
```bash
npm install -g long-git-cli
```
或本地开发:
```bash
npm install
npm run build
npm link
```
## 支持命令
### 自动打 tag
```bash
long tag
```
- 拉取最新 tag,自动递增(格式:`test-v00.00.0000`)
- 检查分支(禁止在 master/main/release 上打 tag)
- 自动推送到远程仓库(Bitbucket/GitHub/GitLab 均支持)
- 友好提示 tag 结果
### 规范化 commit 并 push
```bash
long commit
```
- 自动 git add .
- 打印所有将要提交的文件,需用户确认
- 交互式收集 commit 信息(类型、范围、说明、描述、脚注,参考 Angular/commitizen 规范)
- 生成规范化 commit message
- commit 后再次确认,自动 push
- 支持 Bitbucket/GitHub/GitLab,push 后友好提示
## 交互流程示例
#### long tag
```
🚀 开始自动打 tag...
📥 拉取最新的远程信息...
📋 当前最新 tag: test-v00.00.0001
🆕 新 tag: test-v00.00.0002
🏷️ 创建 tag: test-v00.00.0002
✅ Tag test-v00.00.0002 创建成功
📤 推送 tag 到远程仓库...
✅ Tag 推送成功
🔗 你可以在 Bitbucket 上查看新创建的 tag
💡 提示:在 Bitbucket 中,你可以在 "Tags" 页面查看所有 tag
✅ Tag 创建并推送成功!
```
#### long commit
```
📝 本次将要提交的文件:
src/commands/commit.ts
请确认以上文件是否全部需要提交? (Y/n)
请选择提交类型(必选): feat
影响范围(可选,如模块名,直接回车跳过):core
简短说明(必填,建议50字以内):支持交互式 commit
详细描述(可选,直接回车跳过):
脚注(如 BREAKING CHANGE/关联 issue,可选,直接回车跳过):
🚩 即将提交以下内容:
提交文件:
src/commands/commit.ts
提交注释:
feat(core): 支持交互式 commit
请确认是否提交并 push? (Y/n)
✅ commit 成功!
🚀 push 成功!
🔗 你可以在 Bitbucket 上查看新创建的内容
💡 提示:在 Bitbucket 中,你可以在 "Commits" 页面查看
```
## 扩展性说明
- 所有 git 操作、tag 处理、交互、常量、类型均已抽取为公共模块
- 新增命令/支持更多平台/自定义交互,只需在 utils/constants/types 里维护
- 代码高度解耦,便于单元测试和团队协作
## 贡献
欢迎提 issue 或 PR,或根据自身需求 fork 扩展!