在 Manus 中运行任何 Skill
一键导入
一键导入
一键在 Manus 中运行任何 Skill
开始使用ms-git-sync-branch
星标0
分支1
更新时间2026年3月5日 04:04
从上游主分支拉取最新代码,同步到本地主分支,再合并/变基到当前工作分支;遇冲突自动解决
安装
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
SKILL.md
readonly菜单
从上游主分支拉取最新代码,同步到本地主分支,再合并/变基到当前工作分支;遇冲突自动解决
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
专门用于 my-claude 项目从上游仓库一键同步更新。自动检测并添加 upstream remote,从 upstream/master 更新到本地 master,合并到当前分支,检查配置变更并提示调整 inventory 配置,最后引导提交和推送。当用户在 my-claude 项目中说"从上游更新"、"同步上游"、"拉取上游代码"等时使用此 skill。
仅用 Git 分析改动并自动生成 conventional commit 信息(可选 emoji);必要时建议拆分提交,默认运行本地 Git 钩子(可 --no-verify 跳过);智能推断是否推送到远程
PR 前将开发分支的多个 commit 压缩成一个,自动同步上游代码并生成 Conventional Commits 风格的提交信息(可选 emoji)
| name | ms-git-sync-branch |
| description | 从上游主分支拉取最新代码,同步到本地主分支,再合并/变基到当前工作分支;遇冲突自动解决 |
| allowed-tools | Bash(git fetch, git checkout, git pull, git merge, git rebase, git branch, git rev-parse, git log, git status, git diff, git remote, git stash, git stash pop, git add, git rebase --continue, git merge --continue, git symbolic-ref), Read(**), Edit(**) |
| argument-hint | [--remote <remote>] [--branch <branch>] [--strategy merge|rebase] [--stash] [--no-resolve] |
从上游主分支拉取最新代码 → 同步到本地主分支 → 合并/变基到当前工作分支。 遇到合并冲突时,自动分析并尝试解决。
/ms-git-sync-branch
/ms-git-sync-branch --remote origin --branch main
/ms-git-sync-branch --strategy rebase
/ms-git-sync-branch --stash
/ms-git-sync-branch --no-resolve
--remote <remote>:指定远程仓库名称(如 origin、upstream)。省略则自动检测。--branch <branch>:指定远程主分支名称(如 main、master、develop)。省略则自动检测。--strategy merge|rebase:指定合并策略。省略则根据项目惯例自动推断。--stash:同步前自动 git stash 暂存未提交的改动,完成后 git stash pop 恢复。--no-resolve:遇到冲突时不自动解决,仅报告冲突文件列表并暂停,等待用户手动处理。git rev-parse --is-inside-work-tree 确认位于 Git 仓库内。git symbolic-ref --short HEAD)。若用户未指定参数,按以下策略自动推断:
git remote 列出所有远程仓库。upstream,优先使用(fork 模式常见)。origin,使用 origin。upstream,列出远程列表并询问用户选择。git remote show <remote> 或 git symbolic-ref refs/remotes/<remote>/HEAD 获取远程默认分支。main → master → develop。优先检测 PR 场景(最高优先级):
git rev-parse --abbrev-ref @{u} 检查当前分支是否有上游跟踪分支。origin/feature-branch),说明分支已推送。git log @{u}..HEAD 检查本地是否有未推送的提交。检查 git config pull.rebase 的值:
true → 使用 rebase。false 或未设置 → 使用 merge。检查最近 20 条 git log --oneline 中 merge commit 与线性提交的比例:
若仍不确定,默认使用 merge(更安全)。
git status --porcelain 检查工作区是否有未提交改动。--stash → 自动执行 git stash push -m "sync-branch: auto stash before sync"。步骤流程:
a. git fetch <remote> # 拉取远程最新引用
b. git checkout <main-branch> # 切换到本地主分支
c. git merge <remote>/<main-branch> --ff-only # 快进合并远程主分支
- 若快进失败(本地主分支有独立提交),改用 git pull --rebase 或提示用户处理
d. git checkout <original-branch> # 切回原工作分支
根据推断的策略执行:
git merge <main-branch>
git rebase <main-branch>
若合并/变基产生冲突:
git status 和 git diff 识别所有冲突文件。<<<<<<<、=======、>>>>>>>),判断:
Edit 工具修改文件,移除所有冲突标记。git add <file> 标记为已解决。git merge --continue 或 git commit。git rebase --continue(可能需要多轮,逐 commit 处理)。--no-resolve)git add <file>:标记为已解决。git merge --continue / git rebase --continue:继续合并/变基。git merge --abort / git rebase --abort:中止操作。git stash,此时执行 git stash pop 恢复工作区。
stash pop 产生冲突,同样尝试自动解决或提示用户。同步完成后,打印以下摘要信息:
同步完成 ✓
远程仓库:origin
主分支: main
合并策略:merge
工作分支:feature/my-feature
更新情况:
- 本地 main 更新了 12 个 commit(a1b2c3d → e4f5g6h)
- 合并到 feature/my-feature 成功(无冲突 / 已解决 N 处冲突)
冲突解决记录(如有):
1. src/config.ts — 双方均修改了 DEFAULT_TIMEOUT 值,采用上游值(30s → 60s)
2. package.json — 依赖版本冲突,合并双方新增的依赖项
后续建议:
- 建议运行测试确认合并后功能正常
- 若有问题可通过 git reset --hard HEAD~1 回退合并
git push,所有操作仅限本地。git checkout . 或 git clean。--abort 指令;成功后提供回退命令参考。git config --global 等操作。--strategy rebase 且分支已推送,发出警告提示需要 force push 的风险。| 场景 | 处理方式 |
|---|---|
| 当前分支就是主分支 | 仅执行 git pull,跳过合并步骤 |
| 本地主分支不存在 | 从远程 checkout 创建本地主分支 |
| 远程不可达(网络问题) | 报错并建议检查网络或 remote URL |
| detached HEAD 状态 | 提示用户先切换到具名分支 |
| 未提交的 merge/rebase 进行中 | 提示用户先完成或中止当前操作 |
| stash pop 产生冲突 | 同样尝试自动解决或提示用户 |
| rebase 多 commit 逐个冲突 | 逐个 commit 处理,每轮 rebase --continue |
| 分支已推送 + 用户指定 rebase | 警告:将改写远程历史,需 force push,询问是否继续 |
| PR 场景(分支已推送) | 自动使用 merge,忽略用户指定的 rebase(除非明确 --force) |