2.1 KiB
2.1 KiB
提交后强制推送 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与最终本地mainSHA 一致。- 既有
v0.0.0、v0.0.1、v0.0.2以及新v0.0.3标签均能从远程读取并对应本地标签提交。 - 凭据继续由 macOS Keychain 管理,仓库和提交历史无密码或令牌。
- 全局 Git 配置保持不变,治理门禁和 GitNexus 变更检测通过。
风险
- 远程网络或认证故障会延迟任务完成,但不会破坏本地提交。
- 分支保护或远程出现未知提交时可能拒绝推送;必须停下检查,不得绕过保护。
- 将所有标签批量推送可能发布未批准标签,因此只允许精确推送指定标签。