name: safe-git-guard description: 通过要求备份和确认来防止破坏性Git操作。阻止 git reset --hard、git push --force 在 main 分支上、git clean -fd。在 git checkout、git reset、git rebase 前要求备份。在任何破坏性Git命令时激活。
安全Git守卫
用于防止破坏性Git操作的技能
触发条件
此技能在这些命令时自动激活:
git reset --hardgit checkout -- <文件>git clean -fdgit rebase(无明确确认时)git push --force
规则
禁止(绝不执行):
git reset --hard- 不可逆地删除未提交的更改git push --force在 main/master 分支上 - 可能破坏远程历史记录git clean -fd- 不可逆地删除未跟踪的文件
警告 + 需要备份:
-
git checkout -- <文件>- 覆盖本地更改- 执行前:创建备份
git stash push -m "备份-检查前-$(date +%s)"
-
git reset HEAD~n- 重置提交- 执行前:创建标签
git tag 备份-重置前-$(date +%s)
-
git rebase- 修改历史记录- 执行前:创建备份分支
git branch 备份-重置前-$(date +%s)
破坏性操作工作流程
1. 停止 - 不要立即执行
2. 备份 - 保存当前状态(标签/分支/储藏)
3. 询问 - “您确定吗?将会丢失什么?”
4. 确认 - 明确“是的,我了解风险”
5. 执行 - 仅当确认后才运行命令
示例对话
用户: “撤销最后3次提交”
Claude(带有此技能):
警告:检测到破坏性操作
您想运行 `git reset HEAD~3`。这将:
- 从历史记录中移除3次提交
- 更改变为“未暂存”(--soft)或删除(--hard)
创建备份:
> git tag 备份-YYYYMMDD-重置前
我应该继续吗?(回答“是,继续重置”)
受保护分支
在您的项目 CLAUDE.md 中配置:
受保护分支:
- main # 生产分支,切勿强制推送
- master # 遗留生产分支
- develop # 开发分支,仅限拉取请求
- release/* # 发布分支,仅限批准
与不可接触区域的集成
此技能尊重 CLAUDE.md 中定义的不可接触区域。 当更改影响受保护文件时:额外警告 + 影响分析。
配置
添加到您的 CLAUDE.md:
### Git 安全规则
受保护分支:
- main, develop, release/*
不可接触区域(需要明确批准):
- src/auth/**
- src/core/**
- config/production.*
来源
最初为 fabrikIQ 开发 - AI驱动的制造数据分析。
许可证
MIT - 免费使用和修改