docs(GOV-004): 强制提交后同步 Gitea

This commit is contained in:
2026-08-12 18:43:17 +08:00
parent 2d2502c9f6
commit 2a16e9f7d1
21 changed files with 304 additions and 10 deletions
+41 -4
View File
@@ -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 原文保留用于审计当时决策。