◆
git-auto-push 绕过 hooks 提交
定位
绕过所有 git hooks(husky / pre-commit / commit-msg / pre-push)完成一次 add → commit → push 流程。仅在你明确要求时使用——常规提交一律走标准流程,本 skill 不会主动建议用。
对话里说「绕过 hooks 提交」「跳过钩子提交」「--no-verify 推送」「不跑 lint 直接推」「hooks 卡住先推上去」等才会触发。
适用场景
- husky / lint-staged / commitlint 卡住,先推上去;
- 大批量重构、WIP 备份到远端;
- hooks 本身坏了,先推再修。
核心规则:调用即授权
你调用本 skill = 已经明确授权全自动执行。它不会再问「是否提交 / 是否包含未跟踪文件 / 当前是 master 是否继续」,一路跑到底,最后一次性汇报。
唯一会停下来的两种红线情形:
- 需要用
--force/--force-with-lease(必须你在当前对话明确要求才可加); - 检测到工作区里明显的敏感文件未在
.gitignore里(.env*含真实 secret、*.pem、id_rsa、*.key、credentials.json等)——停下提示,让你判断是否真要推。
执行流程(全自动,不打断)
- 预检:并行跑
git status --short/git diff --stat/git log -3/ 查当前分支 / 查 remote。结果只用于自检和拟 commit message,不用于询问。 - HTTPS remote 自动转 SSH(macOS 必做):macOS 上 HTTPS remote push 会触发
git-credential-osxkeychain钥匙串弹框并把 Bash 卡死(exit 137)。预检发现origin是https://github.com/...→ 直接set-url改成 SSH。只对 github.com 做;Gitee 本机没配 SSH key,保持 HTTPS 让你手动点「始终允许」。 - 拟 commit message:中文、≤50 字、快(只看 status + diff --stat,不读 diff 内容)、不加
Co-Authored-By尾巴。改动集中在一个目录用<type>(<目录>): <动作>,拟不出来就默认chore: 更新代码。 - 暂存:默认
git add -A(含未跟踪文件),除非你说「只推 xxx」。 - commit:
git commit --no-verify -m "<message>"。 - push:
git push --no-verify;新分支自动-u origin <branch>。 - 验证 & 汇报:
git log -1 --stat+git status,一次性汇报 commit hash、推到哪个分支、是否还有未提交改动。
嵌套子仓库(gitlink)处理
当 git status 报 modified: packages/web (modified content) 或 (new commits),说明子目录是独立 git 仓库(gitlink),父仓库只追踪它的 commit SHA。默认全部纳入:
(modified content)的子仓库:cd 进去跑完整的 commit + push 流程;(new commits)的子仓库:已 commit 过,只确保已 push;- 回父仓库
git add <子仓库路径>更新 gitlink SHA,再走父仓库自己的 commit + push。
禁止父仓库 push 完就走、留着子仓库的
(modified content)让你自己再来一遍。
安全红线
- 绝不自动使用
--force/--force-with-lease; - 绝不在
master/main/release/*上 force push; - 检测到敏感文件停下提示;
- 不
git config任何配置、不 amend 历史 commit。
相关
- 提交前想先跑页面验证 → fe-auto-test

还没有留言,来发表第一条吧~