# 提交后强制推送 Gitea PRD - 功能编号:GOV-004 - PRD 版本:0.1 - 状态:approved - 日期:2026-08-12 ## 问题 项目此前只要求保存本地提交,是否推送需要逐次确认。这会导致本地版本与 Gitea 长期不一致,使远程备份、跨设备读取、历史审阅和版本回退缺少可靠依据。 ## 目标 - 每次验证通过的本地提交立即推送当前分支。 - 本次创建的新标签在分支推送成功后单独推送。 - 推送失败时任务保持未完成,并提供安全、可审计的重试路径。 - 让提交、远程分支、标签和功能档案保持可核对的一致关系。 ## 非目标 - 不自动推送其他本地分支或非本次创建的标签。 - 不使用强推,不自动合并、rebase 或覆盖未知远程提交。 - 不新增 GitHub、CI、Webhook 或 Gitea 服务端配置。 - 不修改全局 Git 配置,不影响其他项目。 ## 用户流程 开发者完成验证与 Review 后创建中文提交,随即把当前分支推送到项目 `origin`;若同时发布版本,则精确推送新标签。系统核对远程 SHA 并在功能档案中记录结果。任何环节失败都保留本地状态,解决原因后重试,不能对外宣称完成。 ## 验收标准 - 现行规范明确普通提交只推当前分支,新标签只推本次创建的标签。 - 现行规范明确推送成功属于完成定义,失败必须留痕并阻断完成。 - 现行规范禁止 `--force`、`--force-with-lease`、自动覆盖或自动改写远程历史。 - `origin/main` 与最终本地 `main` SHA 一致。 - 既有 `v0.0.0`、`v0.0.1`、`v0.0.2` 以及新 `v0.0.3` 标签均能从远程读取并对应本地标签提交。 - 凭据继续由 macOS Keychain 管理,仓库和提交历史无密码或令牌。 - 全局 Git 配置保持不变,治理门禁和 GitNexus 变更检测通过。 ## 风险 - 远程网络或认证故障会延迟任务完成,但不会破坏本地提交。 - 分支保护或远程出现未知提交时可能拒绝推送;必须停下检查,不得绕过保护。 - 将所有标签批量推送可能发布未批准标签,因此只允许精确推送指定标签。