SuperAPI AI 工具集

git-push

通用与其它

查看项目

更新于 10-15 20:05

技能介绍

用途:git-push 是 blake-os git-ops 路由中的内部推送步骤,负责把本地提交发布到 origin,但仅在分支与远端保持同步时执行。若远端已有本地没有的提交,需先用 git-sync 整合后再推送。该操作从不强制推送。

前提:需先完成提交。若工作区存在未提交改动,应运行 git-commit 或报告仍处于脏状态的改动。

工作流程:第一步校验仓库与远端,运行 git remote get-url origin 和 git branch --show-current;若无 origin 远端则停止并提示用 git remote add origin 添加。第二步抓取并测量状态,运行 git fetch origin 与 git rev-list --left-right --count @{u}...HEAD,输出依次为 behind 和 ahead。behind=0 且 ahead=0 时停止,提示已与远端一致、无需推送;若 @{u} 报错说明未设置上游,分支为新分支,直接进入第三步设置上游。behind>0 时停止且不推送,报告远端有 N 个本地没有的提交,需先运行 git-sync 整合(快进或合并)再推送,此时推送会被拒绝,不应尝试。behind=0 且 ahead>0 时可推送,进入第三步。第三步推送:无上游时运行 git push -u origin HEAD,已有上游时运行 git push;绝不使用 git push --force 或 --force-with-lease。第四步验证:运行 git fetch origin && git rev-list --left-right --count @{u}...HEAD,确认 behind=0、ahead=0,即本地与远端一致,并报告分支、远端 URL 与推送的提交数。

限制与护栏:绝不强制推送;落后时绝不推送,需先经 git-sync 整合;绝不推送密钥,若 .env 或凭据文件出现在待推送提交中应停止并警告;若推送因其他原因(认证、pre-receive 钩子)被拒绝,应原样报告错误,不得强制。跨操作顺序由 blake-os:git-ops 负责。