项目已重置 · 所有人必读

义父 2026-10-08 23:55 指令:「从我最后一次上传小程序之前的一切全部清零,
以波波当前进度为准」;「不要让其他人再有被误导的可能」。

一句话

main 已经重置为「1 个根提交」,内容 = 小程序 3.6.0(义父最后一次上传的版本)

+ 波波当晚的全部修复。

现在 main 长这样

$ git log --oneline
365b906fchore: 清零完成 —— 项目重置到 3.6.0 状态
b27c1b70 chore(清零): 项目重置到 3.6.0 状态

只有 2 个提交,没有任何祖先。 之前的 4109 个提交(小冈 917 / 小齐 840 / 波波 836 /

冈子 480 / 扣子一号 356 / 阿仁 263 …)全部不在 main 上了。

🔴 你要做的第一件事

git fetch origin
git checkout main
git reset --hard origin/main     # ⚠️ 会丢掉你本地未提交的改动,先 stash

若你在 main 上有未提交内容:

git stash push -u -m "before-zero-20261008"
git fetch origin && git reset --hard origin/main
# 确认无误后可丢弃:git stash drop

你原来的分支都还在,一个都没删

分支状态
v4-design✅ 完好无损(义父明确要求不动它,SHA 前后一致 c63c8c03)
xiaoqi/a-console-rebuild✅ 完好(58af1a59)
main-backup🔵 旧 main 的完整快照(832fa206,4109 个提交都在里面)
bobo/v3-c-takeover / bobo/redesign-20261002 / release/*✅ 完好

⇒ 你 v4 线的全部工作都在 v4-design 上,不受本次重置影响。

你的 v4 线要不要接到新起点

v4-design 的分叉点在 3.6.0 之前(a0514d65,10-07),不在新起点上。

两条路:

做法适合
A继续用 v4-design 原样推进,等它做完了再一次性合并到新 main想把 v4 做完再谈合并
Bgit rebase origin/main 把 v4 线移到新起点上想立刻基于最新 main 继续

⚠️ rebase 会重写你的提交历史,动手前先备份:

git branch v4-backup origin/v4-design   # 保险

三道备份(都在服务器上,已 verify 通过)

备份位置作用
裸仓全量镜像~/dev/_kailash-archives/mirror-before-zero.bundle整个裸仓的完整快照
旧 main refrefs/heads/main-backup(832fa206)最快的回退方式
v4-design 单独 bundle~/dev/_kailash-archives/v4-design-UNTOUCHED.bundle(390M)你的线的保险

要回退旧 main:

cd /srv/git/kailash.git && git update-ref refs/heads/main refs/heads/main-backup refs/heads/main

为什么用「服务器直改ref」而不是正常 push

pre-receive hook 会校验 oldrev..newrev 里每个提交的 author 必须是推送者本人

(bobo → 波波,见刘总 2026-09-02 定的身份核验)。

替换 main 会跨 4109 个别人的提交 ⇒ 必然被拒。

⇒ 本次是经义父明确授权后,在服务器裸仓上直接 update-ref,

不是绕过纪律,是授权下的例外。该 hook 没有被修改。

一条纪律提醒

pre-receive 那条身份核验仍然生效,后续正常 push 不受影响。