SuperAPI AI 工具集

code-sync

编程与开发

查看项目

更新于 10-16 02:31

技能介绍

用途:批量同步基础目录下的所有 git 仓库,支持两种模式——推送(下班同步,处理未提交改动与待推送提交)和拉取(上班更新,拉取远端最新)。用户说「同步代码」或 code-sync 时会询问选择哪种模式。

主要能力:扫描仓库并输出 JSON(含 path、name、branch、remote、dirty_count、has_upstream、ahead、behind 等字段);按状态分类后自动执行批量操作(无改动且有待推送提交时自动 git push,无改动且落后时自动 git pull --ff-only);对异常情况交互处理,包括脏仓库(询问 commit、stash 或跳过)、无上游分支(询问是否 git push -u origin <branch>)、ff-only 失败(说明分叉并建议 rebase、merge 或跳过)、脏且落后(询问 stash 后拉取再 pop);最后按结果分组输出汇总。

使用方式:依赖 git 命令行与 git-workflow 技能(后者随 npx skills add niracler/skill 提供,所有提交必须通过 Skill 工具调用,不得直接执行 git commit)。首次使用检查 ~/.config/nini-skill/code-sync/config.md,不存在则询问仓库位置与目录结构并写入 base_dir。扫描命令:bash scripts/scan.sh(推送模式,仅本地数据)、bash scripts/scan.sh --fetch(拉取模式,先 fetch,每仓库 10 秒超时)、bash scripts/scan.sh --base-dir /path/to/dir(自定义目录)。

适用场景:多台机器间同步个人或团队 git 仓库,日常上下班批量推送与拉取。

限制:目录结构需符合 <base-dir>// 或 <base-dir>//repos/*/ 模式;拉取模式依赖网络与 SSH 密钥,fetch 失败会记录 fetch_error 并跳过;ff-only 失败需手动 rebase 或 merge;推送被拒需先拉取再推送。技能加载时不主动校验工具,命令因缺少工具失败时再逐步引导安装。