repo-sync
Manage and synchronize multiple Git repositories across workspace-hub. Use for bulk git operations, repository status checks, branch management, and coordinated commits across 26+ repositories.
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
Repo Sync
Smart pull-all with automatic diagnosis and repair for the workspace-hub multi-repo ecosystem.
Usage
/repo-sync — Pull all repos, diagnose failures, and fix them.
Optional arguments:
-
/repo-sync pull— Pull all repos (default) -
/repo-sync status— Status check only, no pulls -
/repo-sync push— Push all repos with unpushed commits
What It Does
Phase 1: Bulk Pull
Run ./scripts/repository_sync pull all to attempt pulling every repo.
Phase 2: Diagnose Failures
For each repo that failed, check:
- Detached HEAD — submodules pinned at a commit, not on a branch
- Diverged branches — local and remote have diverged, needs merge
- Uncommitted changes — dirty working tree blocking pull
- No upstream — no tracking branch configured
Phase 3: Auto-Fix
Apply the appropriate fix per failure type:
| Failure | Fix |
|---|---|
| Detached HEAD (submodule) | git checkout main && git pull --no-rebase |
| Diverged branches | git pull --no-rebase (merge strategy) |
| Uncommitted changes | git stash && git pull --no-rebase && git stash pop |
| No upstream | Report only, no auto-fix |
Phase 4: Summary
Report final status of all repos.
Implementation
When this skill is invoked, execute these steps:
Step 1: Run bulk pull
./scripts/repository_sync pull all
Capture output. Identify repos marked with ✗ Failed.
Step 2: For each failed repo, diagnose
cd <repo_path>
# Check if on a branch
git branch --show-current # empty = detached HEAD
# Check for uncommitted changes
git status --porcelain
# Check divergence (only if on a branch with upstream)
git rev-list --count @{u}.. 2>/dev/null # ahead
git rev-list --count ..@{u} 2>/dev/null # behind
Step 3: Apply fixes
Run all independent repo fixes in parallel using the Bash tool.
Detached HEAD:
cd <repo_path> && git checkout main && git pull --no-rebase
Diverged branches:
cd <repo_path> && git pull --no-rebase
Uncommitted changes blocking pull:
cd <repo_path> && git stash && git pull --no-rebase && git stash pop
If stash pop has conflicts, report to user — do NOT auto-resolve.
Step 4: Report summary table
Format as markdown table:
| Repo | Issue | Fix Applied | Result |
|------|-------|-------------|--------|
Important Notes
-
Never force-push or
reset --hardwithout explicit user approval - Never rebase diverged branches — always merge (per workspace CLAUDE.md)
- digitalmodel and worldenergydata are submodules — detached HEAD is normal when workspace-hub pins a specific commit
- After fixing submodules, the workspace-hub
git statuswill show them as modified (new submodule pointer) — this is expected - If
stash popfails with conflicts, stop and report to user - Use
--no-rebaseon all pulls to avoid rebase surprises on diverged repos
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-01-20
- 索引更新时间
- 2026-02-19
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!