Commit d9fb836e by luoqi

docs(ops): 回滚必须带 --no-pull + 补 DEPLOY_BRANCH 用法

排查分支状态时发现文档与脚本长期不一致:main 上文档早已写「部署脚本不写死分支」,
而 main 的脚本仍是 `git pull --ff-only origin main`(该改动只在 test 上)。
本次已 cherry-pick 脚本改动到 main,文档主体因此自然对齐,只补两处:

1. ️ 回滚命令必须带 --no-pull —— 原文档写的
   `git checkout <commit> && bash deploy/deploy-prod.sh`
   在旧脚本下会紧接着 pull 回分支最新,**把刚回滚的 commit 又拉走且静默无提示**;
   新脚本在 detached HEAD 下 fetch 会失败退出,不再假成功,但正确用法仍是 --no-pull。
   并提醒回滚后切回 main,否则下次部署仍在 detached HEAD。

2. 补 DEPLOY_BRANCH 用法 —— 脚本一直支持,文档从没提过。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
parent 738e1f57
Pipeline #3437 failed in 0 seconds
......@@ -22,6 +22,8 @@ icon: Terminal
**分支规约**:`main` = 生产(只接受合并,不直接改)· `test` = 测试(可聚合测试专用代码,**永不回流 main**)· 开发分支 → main。
部署脚本**不写死分支**,部署的是"该机当前 checkout 的分支",所以生产机停在 main、测试机停在 test 即可。
需要临时部署别的分支(或首次把某台机切到某分支)用 `DEPLOY_BRANCH` 覆盖:
`DEPLOY_BRANCH=test bash deploy/deploy-prod.sh`。
---
......@@ -192,9 +194,17 @@ $DC ps
# 回滚:切回上一个 commit 重新部署
cd /data/pac && git log --oneline -5 # 找到要回滚的 commit
git checkout <commit> && COMPOSE_MANAGED=1 bash deploy/deploy-prod.sh
git checkout <commit>
COMPOSE_MANAGED=1 bash deploy/deploy-prod.sh --no-pull # ⚠️ 必须带 --no-pull
```
<Callout type="warn">
回滚**一定要带 `--no-pull`**:不带的话脚本会先 `git fetch + pull` 当前分支,
把你刚 checkout 的旧 commit 又拉回分支最新 —— 等于回滚没生效(旧版脚本会**静默**发生;
现版本在 detached HEAD 下会取到分支名 `HEAD` 导致 fetch 失败退出,至少不会假成功)。
回滚完记得 `git checkout main` 切回来,否则下次部署仍在 detached HEAD。
</Callout>
**数据层回滚**:改 yaml 口径的可以改回去再 reparse 一遍(`rawPayload` 一直保留,可逆);
删除类操作不可逆,执行前务必先 `--dry-run` 或 `select count(*)` 确认范围。
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment