chore(git): main分支保护(pre-commit hook禁止直接提交main) + go.md补分支策略
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
0dd513db6e
commit
65e64cc717
Executable
+12
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
# main 分支保护:禁止直接在 main 上提交(main 是受保护的稳定线)。
|
||||
branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
||||
if [ "$branch" = "main" ]; then
|
||||
echo "=================================================================="
|
||||
echo " 拒绝提交:main 是受保护的稳定线,不允许直接在上面改/提交。"
|
||||
echo " 请切到开发分支再提交: git checkout dev"
|
||||
echo " 确需向 main 落稳定快照: git commit --no-verify (并随后打 tag)"
|
||||
echo "=================================================================="
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
||||
@@ -25,6 +25,18 @@
|
||||
> - 注意:建 Git 点时移除了 `ofbiz-framework` 内弃用 OFBiz 上游的两个嵌套 `.git`(它是死代码、且文件夹备份保留了文件),以便外层 git 能纳入 modern-ui 前端源码。
|
||||
>
|
||||
> **以后每次改完一批、确认能跑,就再建一个 Git 点**:`git add -A && git add -f oa-backend/data/oa.db && git commit -m "SNAPSHOT <说明>"`,并打 tag `git tag snapshot-<日期>`。
|
||||
>
|
||||
> ### 🌿 分支策略(main 受保护,dev 干活)
|
||||
> - **`main`** = 受保护的**稳定线**:只存验证过能跑的快照,**禁止直接在上面改/提交**(有 git hook 拦截)。每个稳定里程碑打 tag。
|
||||
> - **`dev`** = 开发线:接手的人/AI 所有改动都在这里做。改崩了只崩 dev,main 毫发无损。
|
||||
> - **合并门槛**:dev 必须「`./gradlew compileJava` + `npm run build` + 起服务 + 冒烟登录」全过,才合并回 main:
|
||||
> ```bash
|
||||
> git checkout main && git merge dev && git tag snapshot-<日期> && git checkout dev
|
||||
> ```
|
||||
> - **保护机制**:`.githooks/pre-commit`(已 `git config core.hooksPath .githooks` 激活)会**拒绝在 main 上提交**,提示切 dev。确需向 main 落稳定快照用 `git commit --no-verify`。
|
||||
> > 新环境克隆/拷贝后需重新激活一次:`git config core.hooksPath .githooks`。
|
||||
> - **崩了恢复**:`git checkout main`(main 永远是上一个稳定态)或 `git reset --hard snapshot-W7-20260615-191517` 或拷回备份夹。
|
||||
> - **当前所在分支**:接手时应在 **`dev`** 上工作(`git checkout dev`)。
|
||||
|
||||
> ## 📚 配套参考文件(和本文件同目录,务必一起读)
|
||||
> 本 `go.md` 是主文档(架构+约定+方法论+坑)。还有 4 个从代码精确抽取的细节参考:
|
||||
|
||||
Reference in New Issue
Block a user