| name | source-command-ccg-rollback |
| description | 交互式 Git 回滚:安全回滚分支到历史版本,支持 reset/revert 模式 |
source-command-ccg-rollback
Use this skill when the user asks to run the migrated source command ccg-rollback.
Command Template
Rollback - 交互式 Git 回滚
安全地将分支回滚到指定历史版本,默认 dry-run 模式。
使用方法
/rollback [options]
选项
| 选项 | 说明 |
|---|
--branch <branch> | 要回滚的分支 |
--target <rev> | 目标版本(commit/tag/reflog) |
--mode reset|revert | 回滚模式 |
--depth <n> | 列出最近 n 个版本(默认 20) |
--dry-run | 只预览,不执行(默认) |
--yes | 跳过确认直接执行 |
执行工作流
🔍 阶段 1:同步远端
[模式:准备]
git fetch --all --prune
📋 阶段 2:选择分支
[模式:选择]
- 列出本地 + 远端分支
- 过滤受保护分支
- 用户选择或使用
--branch 参数
📜 阶段 3:选择版本
[模式:选择]
- 显示最近 N 个版本(
git log --oneline)
- 显示相关 tags(
git tag --merged)
- 用户选择或使用
--target 参数
⚙️ 阶段 4:选择模式
[模式:决策]
| 模式 | 说明 | 推送方式 |
|---|
reset | 硬回滚,改变历史 | --force-with-lease |
revert | 生成反向提交,保留历史 | 普通 push |
⛔ 阶段 5:最终确认
[模式:确认]
显示即将执行的命令,等待用户确认(除非 --yes)。
✅ 阶段 6:执行回滚
[模式:执行]
reset 模式:
git switch <branch>
git reset --hard <target>
revert 模式:
git switch <branch>
git revert --no-edit <target>..HEAD
安全护栏
- 备份:执行前自动记录当前 HEAD 到 reflog
- 保护分支:
main/master/production 需额外确认
- dry-run 默认:防止误操作
- 禁止 --force:如需强推,手动执行
示例
/rollback
/rollback --branch dev
/rollback --branch main --target v1.2.0 --mode reset --yes
/rollback --branch release/v2.1 --target v2.0.5 --mode revert
注意事项
- reset vs revert:reset 改变历史,需强推;revert 更安全
- LFS/子模块:回滚前确保状态一致
- CI 触发:回滚后可能自动触发流水线