sublime text 的 git: checkout branch 命令不可见或失效,根本原因是插件未正确安装、git 路径未配置或文件未在仓库根目录下;该命令执行 git checkout,存在即切换、不存在且工作区干净则自动创建并检出。

Sublime Text 找不到 Git: Checkout Branch 命令?先确认三件事
插件没装对、git 路径没配好、当前文件不在仓库根目录下——这三件事缺一都会导致分支命令完全不可见。不是功能缺失,是环境没就绪。
- 用
Package Control: Install Package搜Git,只认作者wbond的那个,别选GitGutter(只画小图标)或SideBarGit(命令逻辑不同) - Windows 上若报
'git' is not recognized,必须在Preferences → Package Settings → Git → Settings里填绝对路径,比如"git_command": "C:\Program Files\Git\bin\git.exe" - 打开文件后按
Ctrl+Shift+P输入Git: Status,底部状态栏不显示分支名(如main)和修改数?说明 Sublime 没定位到仓库根——请用File → Open Folder直接打开含.git目录的文件夹,别拖单个文件进来
Git: Checkout Branch 输入新名字,到底是创建还是切换?
它本质执行的是 git checkout <name></name>,行为取决于名字是否存在。这点容易误判,尤其在离线环境下没有远程同步提示。
- 如果输入的分支名已存在,直接切换
- 如果不存在,且工作区干净(无未提交更改),Git 会自动执行
git checkout -b <name></name>,即创建并检出 - 如果工作区有未提交改动,命令会失败并报错
error: pathspec 'xxx' did not match any file(s) known to git,此时不会创建分支 - 分支名含空格或斜杠(如
feature/login)不会被插件校验,错误只出现在控制台(Ctrl+`调出),得自己看输出
Git: Create Branch 后为什么还在原分支上?
这个命令只运行 git branch <name></name>,纯粹新建一个指针,不改变 HEAD。离线环境里看不到远程反馈,更容易忽略这一步。
- 执行完
Git: Create Branch后,必须立刻再执行一次Git: Checkout Branch并输入刚建的名字,才算真正切换 - 想一步到位?直接用
Git: Checkout Branch输入新名更稳妥,前提是当前没有冲突的未提交改动 - 切换后检查状态栏是否更新为新分支名;没变,说明切换失败,回看控制台报错
离线状态下怎么安全分析分支差异?
没网络时不能 git fetch,但本地所有分支的 commit 历史、diff、merge base 都可查。关键是别依赖“远程/”前缀。
- 用
Git: Log查看当前分支完整历史,上下键选中某次 commit 后回车,可看该次变更详情 - 想对比两个本地分支(如
main和dev):呼出命令面板,输Git: Diff→ 选Diff branches...→ 分别输入分支名,插件调用git diff branch1...branch2 - 查看某分支相对于当前分支的独有提交:
Git: Log→ 输入branch-name→ 选中后右键 →Git: Show commits not in current branch - 注意:所有操作都基于本地对象数据库,
origin/开头的分支名在离线时无效,强行输入会报fatal: ambiguous argument 'origin/main'











