--- description: 仅在用户明确要求时 git commit;安全协议 alwaysApply: true --- # Git commit - 仅当用户在当前对话中明确要求创建 commit 时才提交;若含糊先问。用户未要求 commit 则不要提交。 - 禁止:`git config` 任何修改。 - 禁止:未获用户明确要求的破坏性命令(如 `push --force`、`reset --hard` 等)。 - 禁止:跳过 hooks(`--no-verify`、`--no-gpg-sign` 等)除非用户明确要求。 - 禁止:`git push --force` 到 `main`/`master`;若用户要求则先警告。 - 避免 `git commit --amend`。仅当同时满足:用户明确要求 amend,或 commit 成功但 hook 自动改了文件需纳入;且 HEAD 为你本会话所建;且未 push(`git status` 显示 ahead 且未 push)——才 amend。commit 失败或被 hook 拒绝:禁止 amend,修问题后新建 commit。已 push:禁止 amend(除非用户明确要求并知悉需 force)。 - 禁止:`git` 带 `-i` 的交互命令。 - 无改动则不要空 commit。 - 不要 stage/提交明显密钥文件(`.env`、`credentials.json` 等);用户若坚持提交须警告。 - 创建 commit 时并行执行:`git status`、`git diff`(staged+unstaged)、`git log`(看消息风格);该阶段除 git 外不要用其它命令读仓库/扫代码;分析后写 message;再顺序:`git add` 相关文件 → `git commit` → `git status` 校验。 - commit message 用 HEREDOC 传入(示例):`git commit -m "$(cat <<'EOF'\n...\nEOF\n)"`。 - 禁止:用户未明确要求则不要 `git push`。