sublime text 无内置 git 功能,依赖系统 git 命令;gitgutter 仅显示改动状态,gitsavvy 才支持完整工作流;提交需在临时 buffer 中按 ctrl+enter 确认,push 失败须查输出面板定位错误。

Sublime Text 里根本没内置 Git 提交功能
Sublime Text 本身不带 Git 客户端,所谓“Git 插件”只是调用系统已安装的 git 命令行工具。如果你没装 Git 或没配进 PATH,所有插件都会报错——比如弹出 git: command not found 或卡在“committing…”不动。
实操建议:
- 先在终端运行
git --version,确认能返回版本号;不行就去 git-scm.com 下载安装,勾选 “Add Git to PATH” - Mac 用户如果用 Homebrew 安装过 Git,但 Sublime 还是找不到,大概率是 GUI 应用没继承 shell 的
PATH,需在 Sublime 启动脚本里显式设置(见下一条) - Windows 用户注意:Git Bash 的
git.exe默认路径是C:\Program Files\Git\bin\git.exe,但插件通常只认git命令名,所以更推荐用官方安装包的“Use Git from Windows Command Prompt”选项
GitGutter 和 GitSavvy 功能定位完全不同
很多人装了 GitGutter 就以为能提交,其实它只做一件事:在编辑器左侧显示文件改动状态(新增/修改/删除行)。真正要 commit/push,得靠 GitSavvy——它是目前 Sublime 上唯一支持完整 Git 工作流的插件。
常见错误现象:
- 装了 GitGutter 后右键菜单没有 “Git Commit”,因为 GitGutter 根本不提供命令入口
- 装了 GitSavvy 却点不开面板,可能是项目没在 Git 仓库根目录下打开(它只识别
.git文件夹所在位置为工作区) - 执行
git push报错fatal: The current branch main has no upstream branch,说明本地分支还没关联远程,得先用 GitSavvy 的Git: Push... → Set upstream and push
GitSavvy 的 commit 界面不是文本框,是临时 buffer
按 ctrl+shift+p(Win/Linux)或 cmd+shift+p(Mac),输入 Git: Commit 回车后,会新开一个 untitled buffer,标题是 Git Commit Message。这不是普通编辑区——你输完内容后必须按 ctrl+enter(不是回车)才算确认提交,否则关掉就丢弃。
容易踩的坑:
- 误按
esc或点击其他 tab,导致 buffer 被关闭,输入的 commit message 全部消失 - 想写多行 message,直接换行就行,但第一行会被当 summary,建议控制在 50 字以内;空一行后的正文才是 body
- 如果当前有未暂存的改动,GitSavvy 默认只 commit 已
git add的文件;想跳过暂存直接提交所有改动,得用Git: Commit All命令
Push 失败时别硬点重试,先看输出面板
GitSavvy 执行 push 后如果失败,顶部状态栏只会闪一下红色文字,真正详细错误在 Git: Show Output Panel(快捷键 ctrl+alt+o)。很多冲突或权限问题,光看弹窗根本没法定位。
典型场景和应对:
-
error: failed to push some refs to 'xxx'+non-fast-forward:说明远程有你本地没有的提交,得先Git: Pull再 push,不能强制覆盖(除非明确知道后果) -
Permission denied (publickey):SSH 密钥没加载或 agent 没启动,检查ssh-add -l是否列出密钥,没列出就ssh-add ~/.ssh/id_rsa - 用 HTTPS 地址推送时反复要输密码:说明没配 credential helper,运行
git config --global credential.helper store,输一次后密码会存到明文文件(开发机可接受,公共电脑慎用)
Git 操作本质是命令行驱动,Sublime 插件只是壳。最常被忽略的,其实是每次 push 前手动检查当前分支、上游设置和远程连接状态——这些没法靠插件自动兜底。











