推送到主分支(标准流程)
当你说 「推送到主分支 / master」 时,应使用统一脚本,而不是只执行 git push origin HEAD:master。
目标
- 远程
origin/master更新(触发站点 CI 部署) - 本地
master与work/site等工作树中的master一并 fast-forward 到同一提交 - 当前功能分支(如
ai-docs-automation)使命结束:本地删除;默认同时删除远程同名分支 - 当前工作目录 停在
origin/master对应的 detached HEAD,下次干活时git switch -c <新分支> origin/master
命令
在功能分支上、且工作区已 commit 干净后:
bash
chmod +x scripts/publish-to-master.sh # 首次
./scripts/publish-to-master.sh预览:
bash
DRY_RUN=1 ./scripts/publish-to-master.sh保留远程功能分支(少见):
bash
KEEP_REMOTE_BRANCH=1 ./scripts/publish-to-master.sh双 worktree 说明
本仓库常见布局:
| 目录 | 分支 |
|---|---|
work/site-automation | 日常开发(功能分支) |
work/site | 占用本地 master 检出 |
脚本会在 work/site 内对 master 做 merge --ff-only origin/master,避免「远程已推、本地 master 仍落后几十个提交」的情况。若有未提交改动会先 stash。
Git 不允许两个目录同时 checkout master,因此在 site-automation 结束分支时用 detached HEAD @ origin/master,而不是在此目录 git switch master。
Agent 约定
用户明确要求推送到主分支时,按 scripts/publish-to-master.sh 执行完整流程,并在回复中说明:远程 master、本地 master/worktree、功能分支是否已删除、下次开分支命令。
