推荐使用 git-commit-push 插件,它监听 onsave 事件,检查暂存区、分支及远程配置后执行 add/commit(push 需手动开启),支持分支同步校验、钩子保留、自定义提交信息与 -a 全量添加,并需正确配置 git 路径避免环境变量问题。

VSCode 保存时自动 git add/commit/push 用什么插件
原生 VSCode 不支持保存即 Git 提交推送,必须靠插件;最稳定、更新勤、权限控制明确的是 git-commit-push(注意不是 git-auto-commit 那个已停更的)。它不改 VSCode 底层行为,只监听 onSave 事件,触发前会检查暂存区、分支状态和远程配置,避免盲目 push。
- 别装
auto-git:它会静默覆盖你本地未提交的修改,且不校验当前分支是否跟踪远程 -
git-commit-push要求你先手动运行一次git push --set-upstream origin main,否则它不知道推到哪 - 插件默认只做
add + commit,push是可选开关,得进设置里手动打开git-commit-push.pushOnCommit
怎么配置才能不炸仓库
自动 push 最怕两种情况:一是当前分支没关联远程,二是有其他人刚 push 了新提交。插件本身不做强制同步,得靠配置兜底。
- 开启
git-commit-push.requireBranchUpToDate:如果本地落后远程,保存时直接中断,不 commit 也不 push - 关闭
git-commit-push.skipHooks:保留你项目里的pre-commit钩子,比如 ESLint 或 Prettier 校验失败时,整个流程就停住 - 别把
git-commit-push.commitMessage设成固定字符串,建议用"[auto] {fileName}",这样至少知道改了哪个文件
为什么改完一个 .js 文件就 push,但 CI 却报构建失败
因为 git-commit-push 默认只 git add -u(只加已追踪文件),不会 git add .。如果你新增了文件(比如 utils/helper.ts),它根本不会被 add,自然也不会 commit 和 push。
- 想包含新增文件?改配置项
git-commit-push.addOptions为["."],但注意这会让所有未忽略文件进暂存区,包括node_modules临时文件 - 更安全的做法:在项目根目录加好
.gitignore,再把git-commit-push.addOptions设成["-A"](等价于git add -A) - CI 失败大概率是因为你漏提交了
package-lock.json或pnpm-lock.yaml—— 它们属于“新增但未被 add”的文件
Mac / Windows 下执行失败,错误信息是 “command 'git' not found”
这不是插件问题,是 VSCode 启动方式导致的环境变量缺失。GUI 启动的 VSCode(比如从 Dock 点开、开始菜单点开)拿不到 shell 里配的 PATH,所以找不到系统 git。
- Mac:终端里运行
code --new-window启动 VSCode,而不是双击图标 - Windows:用
Start-Process code从 PowerShell 启动,或右键「在此处打开 PowerShell」再输code . - 验证方法:VSCode 里按
Ctrl+Shift+P→ 输入Developer: Toggle Developer Tools→ Console 里打process.env.PATH,看有没有/usr/local/bin或C:\Program Files\Git\cmd
真要图省事,就去插件设置里填绝对路径:把 git.path 设成 /usr/local/bin/git(Mac)或 C:\Program Files\Git\bin\git.exe(Windows)











