Git 分支同步助手
安全同步上游分支,或发布当前会话分支到远程仓库。
技能明确禁止未经批准的强制推送、跳过钩子和无确认的提交重写,并在冲突不明确时要求用户介入;但要求先调用/commit技能自动提交未提交更改,且同步、抓取、变基和推送均可能产生外部仓库影响,缺少逐步确认、敏感数据提示、详细数据流说明和更明确的回滚策略,因此扣分。
工作流、命令和验证步骤总体一致,包含上游检查、冲突处理、变基中止和最终状态验证;但未充分定义无上游、分叉历史、远程异常、钩子失败、认证失败或提交技能不可用时的诊断反馈,且静态评估不能复现关键路径,因此受限于中等分数。
触发条件覆盖同步、拉取、变基、推送、发布和设置上游,目标用户和主要路径清楚;但未明确只读预览、非Git分支、复杂分叉历史等不适用范围,也未说明中文交互或中国大陆网络下远程访问的适配性,因此扣分。
文档结构清晰,具有描述、指南、工作流和验证部分;仓库提供MIT许可、版本和官方Microsoft归属信息,但技能自身没有安装/依赖说明、示例问答、版本变更记录、维护责任人或独立更新路径,且依赖/commit技能假设未解释,因此扣分。
对标准分支同步和发布任务提供了可直接执行的命令序列,并包含完成后的状态检查;但自动提交未提交更改、远程选择、分叉分支处理和异常恢复仍需人工判断,结果完整性和相对手工操作的收益缺少文件内验证证据,因此静态上限内扣分。
技能文本中的命令、约束和验证条件可审计,仓库存在CI和测试基础设施;但提供的CI材料不覆盖该同步技能的关键路径,也没有针对SKILL.md的专门测试或第三方执行结果,因此只能给予有限可验证性。
- 执行前确认工作区改动是否应提交,以及目标远程和上游是否正确;该技能当前将提交作为默认前置步骤。
- 变基和推送会改变或发布远程历史;遇到分叉、认证失败、钩子失败或冲突时,应暂停并要求用户决定。
- 文档未说明远程服务在中国大陆网络环境下的可达性,也未提供专门的自动化回归测试证据。
它能做什么 & 适用场景
该技能用于同步当前会话分支与其上游分支,或将当前分支发布到远程仓库。它会先检查未提交更改和上游配置,再根据分支状态执行抓取、变基、推送或设置上游。技能明确禁止未经批准的强制推送,也不会跳过推送钩子。遇到不明确的冲突处理时,它会请求用户决定。
检查工作区是否有未提交更改;确认当前分支是否配置上游;有上游时执行 git fetch、检查 ahead/behind 状态,并在需要时执行 git rebase;存在本地提交时执行 git push;没有上游时选择远程并执行 git push -u <remote> HEAD;最后检查工作区、同步状态和上游配置。
- 开发者希望把当前分支更新到上游最新提交,并在没有分歧时确认无需同步。
- 开发者需要将本地提交推送到已配置上游的远程分支。
- 开发者首次发布当前分支,并同时设置远程跟踪分支。
- 变基或推送遇到冲突、拒绝或需要高风险操作时,需要由用户做决定。
优缺点一览
- 覆盖已有上游分支和首次发布分支两种常见流程。
- 同步前检查未提交更改,并验证工作区、ahead/behind 状态和上游配置。
- 明确禁止未经批准的强制推送、跳过推送钩子和未经询问的提交历史改写。
- 依赖 Git、远程仓库访问和当前工作区状态。
- 未提交更改需要先使用 /commit 技能提交;该技能本身不定义提交流程。
- 冲突处理不明确时不会自动决定;推送因变基改写历史而被拒绝时,也不会未经批准强制推送。
- 来源未提供独立安装步骤或测试套件信息。
如何安装
README 说明该技能位于仓库的 src/vs/sessions/skills/sync/SKILL.md,但没有提供该技能的独立安装命令。若使用整个仓库,应按仓库自身的开发流程获取 microsoft/vscode;独立技能的安装位置和客户端加载方式未在来源中说明。
如何使用
在支持该技能的会话中提出具体请求,例如“同步当前分支”“拉取上游最新更改并变基”“推送当前分支”“发布当前分支并设置上游”。涉及冲突解决或强制推送时,按提示提供明确决定。