SuperAPI AI 工具集

git-safety-net

通用与其它

查看项目

更新于 10-15 20:34

技能介绍

用途:在分支、stash、rebase 混乱中防止丢失工作,并在已经出问题时进行取证式恢复。所有命令在明确标注为破坏性之前都是非破坏性或增量式的,恢复过程不应让损失扩大。

主要能力与模式:按用户担忧选择模式。A 恢复丢失的提交/分支/stash;B 审计并保存风险工作;C 验证是否已合并;D 预防;E 安全退役清理。入口路由依据用户表述选择,不确定时先运行最小的只读探测。

关键规则:证据范围不等于操作范围,只读审计发现的其他克隆、ref、仓库或悬空对象只扩大报告,不授权修改。授权按对象而非按仓库推断。保存范围限于下一次已授权破坏性操作所威胁的最小集合。区分持久项目源码与临时恢复产物,后者应放在仓库外备份目录。保存与退役分阶段进行。新存储或执行面视为范围变更,需重新规划并取得明确授权。完成以用户可见结果为准,bundle 数量、校验和、上传回执只是辅助证据。

使用方式:恢复时先看 git reflog --date=iso | head -40,确认后用 git show <sha>,再 git switch -c rescue/<name> <sha> 恢复到新分支,绝不 reset 到活跃工作。审计时先确定证据范围,必要时运行 scripts/git_find_all_checkouts.sh 发现机器上所有检出,再运行 scripts/git_loss_audit.sh 做权威的“会丢失什么”检查。范围受限时改用 git status --porcelain=v1 --untracked-files=all、git rev-parse HEAD、git log --oneline HEAD --not --remotes、git ls-remote --exit-code <remote> refs/heads/<branch> 等限定证据。保存悬空提交可用 scripts/git_preserve_danglers.sh --patch-dir ~/git-danglers。

限制:仓库内命令对独立克隆不可见;origin/* 是上次 fetch 的缓存,判断前应 git fetch --all --prune;ref 集合会变动,删除前需重新枚举并核对;合并验证应按内容而非提交数,推荐试合并 git merge-tree。未提供的具体收费、平台与效果信息暂未提供。