docs(GOV-004): 强制提交后同步 Gitea
This commit is contained in:
@@ -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