SuperAPI AI 工具集

git-sync

编程与开发

查看项目

更新于 10-16 05:29

技能介绍

用途

git-sync 用于同步所有 Git 仓库,包括顶层 my-life 仓库和 spaces/ 目录下的项目。它帮助用户集中查看和管理多个仓库的分支状态、远程同步情况以及索引与文件系统之间的一致性。

主要能力

  • 检查所有仓库和分支的状态,包括顶层仓库和 spaces/ 下的项目。
  • 支持拉取所有分支的更新、推送本地提交、克隆缺失的仓库。
  • 校验顶层仓库(my-life)的分支状态(领先/落后/脏/分叉)、未提交更改以及与远程的同步状态。
  • 校验索引到文件系统:每个有代码的项目在 spaces/ 下路径存在,Git 远程地址与索引中的 remote 匹配,并检查分支状态。
  • 校验文件系统到索引:发现 spaces/ 中未在 CLAUDE.md 列出的仓库,并通过 --suggest-additions 生成 YAML 建议。
  • 生成结构化报告,包含顶层仓库、问题、仓库列表、未索引仓库和汇总统计。
  • 使用状态符号标记:✓ 已同步、↓ 落后远程、↑ 领先远程、↕ 分叉、+ 仅本地、? 未索引、! 脏状态、✗ 错误。

使用方式

在 my-life 仓库根目录运行 Python 脚本:

python .claude/skills/git-sync/scripts/sync.py --check   # 状态报告
python .claude/skills/git-sync/scripts/sync.py --pull    # 拉取落后分支
python .claude/skills/git-sync/scripts/sync.py --push    # 推送领先分支
python .claude/skills/git-sync/scripts/sync.py --clone   # 克隆缺失仓库
python .claude/skills/git-sync/scripts/sync.py --json    # JSON 输出
python .claude/skills/git-sync/scripts/sync.py --suggest-additions  # 为未跟踪仓库生成 YAML

技能命令形式:

/git-sync              # 检查所有仓库和分支的状态
/git-sync --pull       # 拉取所有分支的更新
/git-sync --push       # 推送所有分支的本地提交
/git-sync --clone      # 克隆缺失的仓库

适用场景

  • 需要同时管理多个 Git 仓库(如顶层仓库和多个子项目)时。
  • 希望快速了解各仓库分支是否领先、落后、脏或分叉。
  • 需要批量拉取或推送多个仓库的更新。
  • 需要发现 spaces/ 中未纳入索引的仓库并生成添加建议。

限制

  • 从不强制推送:如果分支分叉,仅报告并交由用户处理。
  • 从不自动提交:脏仓库仅被报告,不会被修改。
  • 拉取前先 fetch,确保远程信息最新。
  • 仅允许快进合并:如果不是快进,拉取会安全失败。
  • 跳过脏分支:如果有未提交更改,不会拉取。
  • 错误处理:克隆失败需检查网络、SSH 密钥、权限;远程不匹配需更新 CLAUDE.md 或修复远程;分叉分支需手动合并/变基;缺失远程可能为仅本地仓库,跳过同步。
  • 必须在 my-life 仓库根目录运行脚本。