用途
Git Safety 旨在确保在 Git 仓库中进行文件操作时的安全性和历史完整性。当 Agent 尝试移动、重命名或删除文件时触发,用于约束文件操作方式,避免因使用普通文件管理命令而破坏 Git 跟踪关系或产生冗余变更。
主要能力
移动与重命名
禁止直接使用 mv 命令操作受 Git 跟踪的文件,强制使用:
git mv <old_path> <new_path>
理由是确保 Git 自动跟踪文件重构,保留文件的 Git History,避免识别为“删除 + 新增”。
删除
禁止直接使用 rm 或 rm -rf 操作受 Git 跟踪的文件,强制使用:
git rm <path> 或 git rm -r <path>
理由是从工作区和索引中同步移除,避免残留未跟踪的删除变更。
操作前自检流程
当 Agent 准备操作文件时,应遵循以下逻辑:
- 检查状态:执行 git ls-files <path>。
- 判断:
- 如果有输出(说明文件受控)→ 使用 git mv / git rm。
- 如果无输出(说明是未跟踪文件)→ 使用普通 mv / rm。
使用方式
该技能以规范约束的形式介入 Agent 的文件操作流程:在移动、重命名或删除文件之前,先通过 git ls-files <path> 判断文件是否受 Git 跟踪,再根据判断结果选择 git mv、git rm 或普通 mv、rm。在执行大规模移动操作前,建议先执行 git status 确保工作区是干净的。
适用场景
- 重构代码导致的文件目录结构调整。
- 删除过时的文档或代码文件。
- 项目清理。
限制
严禁在未确认文件状态的情况下盲目使用普通文件管理命令。在执行大规模移动操作前,建议先执行 git status 确保工作区是干净的。