JSPM

@zhusilin/git-quick

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q27257F
  • License MIT

一个强大的 Git 工作流自动化工具,简化日常 Git 操作,支持智能版本管理、一键提交推送和分支合并

Package Exports

  • @zhusilin/git-quick
  • @zhusilin/git-quick/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@zhusilin/git-quick) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

🚀 Git Quick

一个强大的 Git 工作流自动化工具,简化日常 Git 操作。

✨ 特性

Tag 管理

  • 🏷️ 四段版本号major.minor.patch.timestamp 格式,自动添加时间戳
  • 🎯 交互式选择:Major/Minor/Patch/Bugfix 版本类型
  • 📦 语义化版本:完全遵循 SemVer 规范
  • 🔄 智能解析:自动识别最新 tag 和前缀模式
  • ⬆️ 自动推送:一键推送到远程仓库
  • 📋 剪贴板复制:自动复制 tag 名称

Push 命令

  • 一键提交推送:自动 add、commit 和 push
  • 📝 规范化 Commit:支持选择 commit 类型(feat/fix/docs 等)
  • 🔍 冲突检测:推送前自动检查代码冲突
  • 📊 提交预览:显示待推送的提交列表
  • 🛡️ 安全确认:每步操作都有确认

Merge 命令

  • 🔀 智能合并:自动同步远程状态后合并
  • 🎯 交互选择:可交互式选择目标分支
  • 🔒 状态检查:确保工作区干净后再合并
  • 💡 友好提示:合并后提供后续操作建议

📦 安装

全局安装

npm install -g git-quick
# 或
yarn global add git-quick

项目中安装

npm install --save-dev git-quick
# 或
yarn add -D git-quick

🎯 使用方法

命令 1:Tag 管理

交互式创建 Tag

git-quick tag

工具会引导你完成:

  1. 选择版本类型(Major/Minor/Patch/Bugfix)
  2. 预览版本变更
  3. 可选添加 tag 说明
  4. 确认创建和推送

命令行参数

# Bug 修复(仅更新时间戳)⭐ 最常用
git-quick tag --bugfix

# 创建小版本(Patch)
git-quick tag --patch

# 创建中版本(Minor)
git-quick tag --minor

# 创建大版本(Major)
git-quick tag --major

# 添加 tag 说明
git-quick tag --bugfix --message "修复登录问题"

# 自定义版本前缀
git-quick tag --minor --prefix release-

# 只创建 tag,不推送到远程
git-quick tag --patch --no-push

版本号格式说明

四段版本号major.minor.patch.timestamp

示例:

  • v1.2.3.20241208091530 - 完整格式
  • v1.2.3.20241208093045 - Bug 修复后只更新时间戳

时间戳格式:YYYYMMDDHHmmss(年月日时分秒)

命令 2:Push(一键提交推送)

基础用法

git-quick push

智能工作流

情况 1:有未提交的更改

  1. 📝 显示待提交的文件列表
  2. ✅ 确认是否提交
  3. 🎯 选择 Commit 类型(feat/fix/docs/style 等)
  4. ✏️ 输入 Commit 信息
  5. ➕ 自动执行 git add .
  6. 💾 自动执行 git commit
  7. 🔍 检查远程冲突
  8. ⬆️ 推送到远程

情况 2:已提交但未推送

  1. 📊 显示待推送的提交列表
  2. 🔍 检查远程冲突
  3. ❓ 确认推送
  4. ⬆️ 推送到远程

情况 3:已同步

  • ℹ️ 提示无需推送

Commit 类型说明

工具支持以下标准 Commit 类型:

类型 图标 说明 示例
feat 新功能 feat: 新增用户管理模块
fix 🐛 Bug 修复 fix: 修复登录失败问题
docs 📝 文档更新 docs: 更新 API 文档
style 💄 代码格式(不影响功能) style: 格式化代码
refactor ♻️ 代码重构 refactor: 重构用户服务
perf 性能优化 perf: 优化查询速度
test 测试相关 test: 添加单元测试
chore 🔧 构建/工具/配置变更 chore: 更新依赖

最终生成的 commit 格式:类型: 信息

例如:feat: 新增用户管理功能

强制推送

git-quick push --force
# 或
git-quick push -f

⚠️ 警告:强制推送会覆盖远程历史,请谨慎使用!

命令 3:Merge(分支合并)

交互式合并

git-quick merge

工具会:

  1. 显示所有可用分支供选择
  2. 自动同步本地和远程状态
  3. 切换到目标分支并执行合并
  4. 提供后续操作建议

指定目标分支

# 将当前分支合并到 main
git-quick merge --target main

# 或简写
git-quick merge -t main

不使用快进合并

git-quick merge --target main --no-ff

这会创建一个合并提交,保留分支历史。

📖 完整示例

场景 1:快速 Bug 修复(最常用)⭐

# 1. 修复 bug 后,一键提交推送
git-quick push

# 工具会自动:
# - 显示修改的文件
# - 让你选择 commit 类型(选择 fix)
# - 让你输入 commit 信息(输入:修复登录问题)
# - 自动 add、commit 和 push

# 2. 创建 bugfix tag(只更新时间戳)
git-quick tag --bugfix --message "修复登录问题"

# 完成!版本号从 v1.2.3.20241208091530 变为 v1.2.3.20241208093045

场景 2:功能分支合并到主分支

# 当前在 feature/user-management 分支

# 1. 一键提交推送
git-quick push
# 选择 feat 类型,输入:新增用户管理功能

# 2. 合并到 main 分支
git-quick merge --target main

# 3. 推送 main 分支
git-quick push

# 4. 创建新版本 tag
git-quick tag --minor --message "新增用户管理功能"

场景 3:发布新版本(完整流程)

# 1. 开发完成,一键提交推送
git-quick push

? 请选择 Commit 类型:
❯ ✨ feat     - 新功能

? 请输入 Commit 信息(feat):完成支付模块
✓ 提交成功:feat: 完成支付模块
✓ 成功推送到远程分支 main

# 2. 交互式创建 tag
git-quick tag

? 请选择版本类型:
❯ ● 中版本 (Minor) - 新增功能,向下兼容

📦 版本变更预览:
   当前版本:v1.2.3.20241208091530
   新版本:  v1.3.0.20241208093045

? 是否添加 Tag 说明?Yes
? 请输入 Tag 说明:新增支付模块

? 确认创建并推送到远程 Tag 吗?Yes

✓ Tag v1.3.0.20241208093045 创建成功
✓ 已推送到远程仓库
✓ 已复制到剪贴板

🎨 版本类型说明

类型 版本变化 使用场景 示例
Bugfix 仅更新时间戳 快速 bug 修复 1.2.3.202412080915301.2.3.20241208093045
Patch 小版本+1 向下兼容的 bug 修复 1.2.3.xxx1.2.4.yyy
Minor 中版本+1 新增功能,向下兼容 1.2.3.xxx1.3.0.yyy
Major 大版本+1 不兼容的 API 变更 1.2.3.xxx2.0.0.yyy

⚙️ 命令行选项

git-quick tag

选项 说明
--bugfix 创建 Bugfix 版本(仅更新时间戳)
--patch 创建小版本(Patch)
--minor 创建中版本(Minor)
--major 创建大版本(Major)
--prefix <prefix> 指定版本前缀(默认保持当前或使用 v
--no-push 只创建 tag,不推送到远程
--message <msg> 添加 tag 说明信息

git-quick push

选项 说明
-f, --force 强制推送(覆盖远程历史)

git-quick merge

选项 说明
-t, --target <branch> 指定目标分支(不指定则交互选择)
--no-ff 不使用快进合并,创建合并提交

🛡️ 安全检查

所有命令都会进行以下检查:

  • ✅ 验证是否在 Git 仓库中
  • ✅ 检查是否有远程仓库
  • ✅ 确保工作区干净(merge/push)
  • ✅ 检查代码冲突(push)
  • ✅ 同步远程最新状态(merge)
  • ✅ Tag 不重复(tag)

💡 最佳实践

1. 日常开发工作流(超简单)⭐

# 开发完成后,只需两个命令!
git-quick push          # 自动 add、commit(选择类型和输入信息)、push
git-quick tag --bugfix  # 打 bugfix tag

# 就这么简单!

2. 功能分支工作流

# 在功能分支开发
git checkout -b feature/new-feature

# 开发完成
git-quick push  # 自动 add、commit、push

# 合并到主分支
git-quick merge -t main

# 推送 main
git-quick push

# 打标签
git-quick tag --minor

3. 规范化团队 Commit

# 使用 git-quick push 可以强制团队使用规范的 commit 格式
git-quick push

# 所有提交都会是:
# feat: xxx
# fix: xxx
# docs: xxx
# 等标准格式

# 便于后续生成 changelog 和版本管理

❓ 常见问题

Q1: Bugfix 和 Patch 的区别?

  • Bugfix:只更新时间戳,适合快速修复。版本号保持不变,只有时间戳变化。
  • Patch:小版本号+1,适合正式的 bug 修复发布。

Q2: 如何查看历史 tag?

git tag -l -n  # 查看所有 tag 及说明

Q3: Push 会覆盖我手动输入的 commit 信息吗?

不会。只有当工作区有未提交的更改时,才会引导你输入 commit 信息。

如果你已经手动 commit 了,git-quick push 会直接推送,不会修改你的 commit。

Q4: 我可以不使用 commit 类型选择吗?

如果你更喜欢传统方式:

# 传统方式
git add .
git commit -m "your message"
git-quick push  # 只推送,不会再次提交

# 或使用原生 git push
git push

Q5: Push 检测到冲突怎么办?

工具会中断操作并提示:

1. git pull
2. 解决冲突文件
3. git add .
4. git commit
5. 再次运行 git-quick push

Q6: Merge 失败如何回滚?

git merge --abort  # 放弃合并

Q7: 时间戳的时区是什么?

使用本地时区。例如北京时间(UTC+8)。

Q8: 如何删除错误的 tag?

# 删除本地 tag
git tag -d v1.2.3.20241208091530

# 删除远程 tag
git push origin :refs/tags/v1.2.3.20241208091530

🔧 工作原理

Tag 命令流程

检查仓库 → 拉取最新代码 → 解析最新 tag →
选择版本类型 → 生成新版本号 → 添加时间戳 →
创建 tag → 推送到远程 → 复制到剪贴板

Push 命令流程

检查仓库 → 检查工作区状态 →
[如有未提交更改] 显示文件 → 选择commit类型 → 输入信息 → add → commit →
检查待推送提交 → 拉取远程状态 → 检查冲突 →
显示提交列表 → 确认 → 推送

Merge 命令流程

检查仓库 → 检查工作区 → 同步远程 →
选择目标分支 → 同步目标分支 → 切换分支 →
执行合并 → 提供后续建议

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT License

🔗 相关链接


Enjoy! 🎉