| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- ---
- description: 用户说「提交」时,默认 commit + push 到跟踪远端;仅用户明确说不 push 时才只 commit
- alwaysApply: true
- ---
- # 提交的默认语义(commit + push)
- 在本仓库中,当用户使用 **「提交」** 或等价表达时,默认语义是 **完成本地 commit 并 push 到当前分支的跟踪远端**,而不是「只 commit 等用户再说要不要 push」。
- ## 触发表达(均默认 commit + push)
- 包括但不限于:
- - 「提交」
- - 「提交修改」
- - 「把修改提交」
- - 「提交全部修改」
- - 「更新到 git / 更新至 git / 推到 git」
- ## 默认执行顺序
- 1. 检查**全部本地 Git 状态**:
- - 工作区未提交改动
- - 已 commit 但**尚未 push** 的本地提交
- 2. 若有待提交改动:按 `version-bump-on-commit.mdc` 递增对应端版本号,stage 并 **commit**。
- 3. 若本地分支领先跟踪远端(含本次新 commit 与历史未 push 提交):**必须 `git push`** 到跟踪远端(通常 `origin` + 当前分支)。
- 4. **收尾必须汇报 push 结果**:给出远端可达的 commit 哈希;若 push 失败,不得仅说「已提交」,须说明失败原因并尝试修复或明确待用户处理。
- ## 与通用「勿擅自 push」指令的关系
- 若对话中存在「未明确要求则不 push」类通用说明,**在本仓库以本规则为准**:用户说「提交」即视为已授权 push,无需再单独问「要不要推远端」。
- ## 仅当用户明确缩小时,才只 commit 或不 push
- - 「只 commit,不 push」
- - 「不要推远端 / 别 push」
- - 「只提交当前工作区 / 只提交某几个文件」
- ## 其它注意
- - 若检测到敏感信息、凭据、明显运行产物或其它不应提交的内容:先提醒用户,**不要**默认纳入 commit/push。
- - push 前若 pre-push hook(如前端构建)失败:修复可修复项后重试;不得在未 push 成功时把任务描述为「已提交到 git(远端已同步)」。
|