docs(GOV-004): 强制提交后同步 Gitea
This commit is contained in:
@@ -59,9 +59,10 @@ npm run governance:finish -- FEAT-MO-001 market-overview
|
||||
8. 逐条执行开发规范符合性 Review,将结果写入 `review/standards-review.md`。
|
||||
9. 任一 Review 为 `changes_required` 时,返回开发阶段;修复后重跑相关测试、GitNexus开发后分析和 Review。
|
||||
10. 两项 Review 均为 `passed` 后,更新发布说明、回退说明、变更记录和版本号。
|
||||
11. 使用中文 Conventional Commit提交。
|
||||
12. 提交后执行 `npx gitnexus status`;若状态过期,再运行 `npx gitnexus analyze`。
|
||||
13. 本地提交和标签完成后仍不得自动推送;只有用户明确要求时,才向项目专用 Gitea `origin` 推送。
|
||||
11. 使用中文 Conventional Commit 提交。
|
||||
12. 提交后立即将当前分支推送到项目专用 Gitea `origin`;如果本次创建了标签,再精确推送该标签。
|
||||
13. 比较本地与远程分支 SHA,并将提交、推送目标和结果写入功能档案。推送失败时保留本地提交,任务状态保持未完成。
|
||||
14. 提交后执行 `npx gitnexus status`;若状态过期,再运行 `npx gitnexus analyze`。
|
||||
|
||||
## 6. 完成定义
|
||||
|
||||
@@ -77,6 +78,7 @@ npm run governance:finish -- FEAT-MO-001 market-overview
|
||||
- 开发规范符合性 Review 结论为 `passed`。
|
||||
- 发布说明和回退方法可执行。
|
||||
- 中文提交已关联功能编号。
|
||||
- 当前分支和本次新建标签已推送到 `origin`,功能档案保存远程核对结果。
|
||||
|
||||
## 7. 提交流程
|
||||
|
||||
@@ -96,6 +98,20 @@ docs(GOV-001): 建立工程治理与追溯规范
|
||||
|
||||
一次提交应表达一个完整意图,但不为了追求小提交把同一功能切成无法独立理解的碎片。
|
||||
|
||||
提交后推送当前分支:
|
||||
|
||||
```bash
|
||||
git push origin "$(git branch --show-current)"
|
||||
```
|
||||
|
||||
如果本次创建了标签,只推送该标签:
|
||||
|
||||
```bash
|
||||
git push origin <本次标签名>
|
||||
```
|
||||
|
||||
禁止使用 `--force`、`--force-with-lease` 或 `--tags` 代替精确推送。推送失败时不得宣称任务完成;应记录不含凭据的错误摘要,排查后重试同一精确命令。
|
||||
|
||||
## 8. 发布与回退
|
||||
|
||||
- 使用语义化版本和带注释 Git Tag。
|
||||
|
||||
@@ -48,15 +48,50 @@ git config --local remote.pushDefault origin
|
||||
GIT_TERMINAL_PROMPT=0 git ls-remote origin
|
||||
```
|
||||
|
||||
首次需要写权限时,由用户在交互式终端执行推送并输入凭据:
|
||||
首次需要写权限时,在交互式终端推送并输入凭据:
|
||||
|
||||
```bash
|
||||
git push -u origin main
|
||||
```
|
||||
|
||||
添加远程和验证连通性不代表授权自动推送。代理只有在用户明确要求推送时才能执行。建议在 Gitea 中保护 `main`:禁止强推、要求状态检查通过、要求变更说明关联功能编号。
|
||||
首次认证完成后,凭据由 macOS Keychain 管理。GOV-004 起,用户已授予本项目持续推送权限,验证通过的提交必须立即推送。建议在 Gitea 中保护 `main`:禁止强推、要求状态检查通过、要求变更说明关联功能编号。
|
||||
|
||||
## 4. 配置检查与移除
|
||||
## 4. 提交后强制推送
|
||||
|
||||
普通提交只推送当前分支:
|
||||
|
||||
```bash
|
||||
git push origin "$(git branch --show-current)"
|
||||
```
|
||||
|
||||
本次创建版本标签时,在分支推送成功后精确推送该标签:
|
||||
|
||||
```bash
|
||||
git push origin <本次标签名>
|
||||
```
|
||||
|
||||
不得使用 `git push --tags` 替代精确标签推送,避免发布其他未确认标签。不得使用 `--force` 或 `--force-with-lease`。
|
||||
|
||||
分支推送后核对远程 SHA:
|
||||
|
||||
```bash
|
||||
current_branch="$(git branch --show-current)"
|
||||
git rev-parse "$current_branch"
|
||||
git ls-remote origin "refs/heads/$current_branch"
|
||||
```
|
||||
|
||||
两条结果必须指向相同提交。带注释标签核对时,应比较标签最终指向的提交,而不是标签对象本身。
|
||||
|
||||
如果认证、网络、分支保护或非快进检查导致推送失败:
|
||||
|
||||
1. 保留本地提交和标签,不删除、不 amend、不重写历史。
|
||||
2. 记录失败命令、时间和不包含凭据的错误摘要,将任务标记为未完成。
|
||||
3. 先获取并审查远程差异;禁止自动 merge、rebase、强推或覆盖未知提交。
|
||||
4. 解决原因后重试同一个精确推送命令,并重新核对远程引用。
|
||||
|
||||
提交 SHA、远程分支、推送结果和本次标签结果必须写入对应功能档案。
|
||||
|
||||
## 5. 配置检查与移除
|
||||
|
||||
检查当前项目和全局配置的边界:
|
||||
|
||||
@@ -80,7 +115,7 @@ git config --local --unset remote.pushDefault
|
||||
|
||||
上述操作只影响本项目。Keychain 中已保存的凭据需要在“钥匙串访问”中按 `git.foximao.com` 单独删除。
|
||||
|
||||
## 5. 版本与标签
|
||||
## 6. 版本与标签
|
||||
|
||||
发布使用带注释标签,例如:
|
||||
|
||||
@@ -89,3 +124,5 @@ git tag -a v0.1.0 -m "发布市场综合概览 v0.1.0"
|
||||
```
|
||||
|
||||
标签必须指向通过验证的提交。应用回退优先选择既有标签和不可变构建产物,而不是重新拼装旧版本。
|
||||
|
||||
本规范的强制推送规则由 GOV-004 建立,并取代 GOV-003 中“只接入、不主动推送”的历史规则;GOV-003 原文保留用于审计当时决策。
|
||||
|
||||
Reference in New Issue
Block a user