From git-sync
通用 Git 仓库同步治理 skill,用于让当前仓库、其子模块、以及当前仓库目录下的独立 Git 仓库尽可能与远端对齐。适用于 /git-sync、同步仓库、同步子模块、提交并推送、处理 Git 冲突等请求。
How this skill is triggered — by the user, by Claude, or both
Slash command
/git-sync:git-syncThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
一次 `/git-sync` 尽可能完成三类仓库的拉取、提交和推送,让本地与远端基本对齐:
一次 /git-sync 尽可能完成三类仓库的拉取、提交和推送,让本地与远端基本对齐:
这是通用 skill,不包含任何项目特化逻辑、白名单逻辑或硬编码仓库名。
脚本采用两阶段模式:
pull --rebase --autostash 和 push。add、commit、pull --rebase --autostash、push。阶段 1 不会自动暂存文件。阶段 2 才会暂存并提交。
.agents/skills/git-sync/git-sync.sh
退出码含义:
| 退出码 | 含义 | 下一步 |
|---|---|---|
| 0 | 有仓库需要提交 | 阅读每个仓库的状态和摘要,填写提交信息文件 |
| 1 | 无本地改动,已尽量同步 | 直接向用户汇报结果 |
| 2 | 检测到冲突 | 停止自动流程,手动解决冲突 |
如只需要检查发现逻辑或当前状态,不希望触发远端同步,可使用:
.agents/skills/git-sync/git-sync.sh --status-only
阶段 1 会输出一个 messages.template.tsv 路径。格式固定为:
repo<TAB>commit message
示例:
github-readme 更新 GitHub 主页内容
personal-website 调整个人网站展示信息
. 更新子模块引用
要求:
Co-Authored-By:。.agents/skills/git-sync/git-sync.sh --continue-file "<messages.template.tsv 路径>"
旧用法仍可用,但只用于临时兼容,不作为默认流程:
.agents/skills/git-sync/git-sync.sh --continue "所有仓库共用的提交信息"
脚本检测到冲突时会输出冲突文件列表并返回退出码 2。此时不要继续自动提交。
处理方式:
git diff --name-only --diff-filter=U
git add <冲突文件>
git rebase --continue
git push
如果多个仓库发生冲突,先处理脚本当前提示的仓库,再重新运行 /git-sync。
禁止在此 skill 中执行:
git reset --hardgit push --forcegit clean -fdgit checkout --theirsgit checkout --ours主仓库根目录下的独立 Git 仓库会被当作独立仓库处理,不会被主仓库 git add -A 收进去。
| 文件 | 说明 |
|---|---|
git-sync.sh | 通用多仓库同步脚本 |
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub jupiterthewarlock/jthewl-skills --plugin git-sync