SuperAPI AI 工具集

git

通用与其它

查看项目

更新于 10-15 17:19

技能介绍

用途:为 Git 操作提供源码控制安全约束。核心原则是工作区属于用户,改动应保留可见,由用户决定什么进入历史;不得因为“发布有用”就擅自发布。

主要能力:明确区分需要用户显式请求的写操作与可自由执行的只读操作。commit、commit --amend、push、tag、rebase、cherry-pick、revert、merge、删除分支、reset --hard、路径还原和 clean -f 均需用户明确要求;请求新建 commit 不等于授权 amend、push 或 tag。

必要用法:经授权的可能丢弃或覆盖工作区改动前,先执行 bash <git-skill-dir>/scripts/workspace-recovery.sh save before-discard,在交接中保留打印出的 refs/tbh/recovery/... 值,再只执行被授权的那一个操作;保存失败或工作区不受支持时先停下询问。恢复用 bash <git-skill-dir>/scripts/workspace-recovery.sh restore <recovery-ref>,恢复会先保存当前工作区,保持 HEAD、分支和真实索引不变;恢复提交的第二个父提交即保存的索引树,可用 git show '<recovery-ref>^2:<path>' 读取暂存内容。忽略文件不会被保存,恢复遇到忽略路径冲突时拒绝覆盖。只使用打印出的确切 ref。

适用场景:日常只读检查如 status、log、show、diff、blame、branch -v、show-ref、rev-parse、for-each-ref、merge-base 均可执行;为查看 diff --cached 而暂存指定文件、为需要干净树的工具临时 stash 并在之后还原原状也可行。

限制:不要在工作区未清理时使用宽泛的 add,应点名改动的文件;不要在 vendored、构建、数据或已有源码控制目录中初始化仓库;不要手改生成文件。临时目录下的实验仓库可自由使用。遇到 Git 锁通常意味着其他进程正在写入,不得自行杀掉持有者;未经证明无存活进程不得删除锁;索引损坏时不得删状态后照常提交。当 status 显示无法解释的改动时不要提交或推送。若已发生不想要的写入,应如实说明并停止,不再自行做历史操作。