Atom 1.60+ 内置 git-diff,边栏红/绿标记需满足四前提:项目含.git、至少一次commit、文件已被Git跟踪、showDiffBadge启用;默认对比工作区与暂存区,新建未add文件(??)无标记,暂存后标记消失。

Atom 1.60+ 版本已将 git-diff 功能内置,无需手动安装插件;若你用的是旧版或插件失效,才需单独装——但装了也不一定显示标记,关键在 Git 状态和配置。
为什么边栏没出现红/绿标记?
不是插件没装好,而是 git-diff 只在满足全部前提时才激活标记:
- 项目根目录下必须存在
.git文件夹(即已git init或克隆) - 至少执行过一次
git commit(否则没有“上次提交”可比) - 当前打开的文件必须已被 Git 跟踪(
git status中显示为M、A、D,而非??) - Atom 设置中未禁用
showDiffBadge(Settings → Packages → git-diff → Settings → 勾选Show Diff Badge)
常见错觉:“我刚改了文件,怎么没标?”——如果文件是新建未 git add 的(状态为 ??),边栏不会有任何标记。此时只有 split-diff 或终端 git diff 能看到变更。
git-diff 默认比的是哪两个版本?
git-diff 边栏标记默认对比的是「工作区」vs「暂存区」(即 git diff --no-index 不生效,它不读 HEAD)。这意味着:
- 你新增一行并
git add后,绿色+会消失(因为暂存区已含该行) - 你删了一行但还没
git add,才会标红色−;一旦git add,标记就没了 - 想看“工作区 vs HEAD”,得用
split-diff按ctrl-shift-d,或终端运行git diff HEAD
这个设计让边栏轻量实时,但也容易误判“修改消失了”——其实只是被暂存了。
split-diff 和 git-diff 是什么关系?
它们不是替代关系,是互补工具:
-
git-diff:轻量、常驻、只标行号位置,适合快速扫视“改了哪几行”,但不展示内容、不可编辑、无上下文 -
split-diff:重一点,需手动触发(ctrl-shift-d),左右窗格可编辑,自动读取HEAD或暂存区,支持折叠差异块、同步滚动,适合审逻辑、查冲突
注意:split-diff 必须先确保 Atom 当前窗口打开的是 Git 仓库内的文件,且 .git 目录可被识别(可用 git rev-parse --git-dir 验证)。如果提示 “No git repository found”,不是插件问题,是 Atom 没定位到仓库根。
真正容易被忽略的点:边栏标记依赖「Git 状态缓存」,Atom 不会每秒轮询 git status。改完文件后如果标记延迟出现,试试手动保存(ctrl-s)或切换 Tab 触发重绘;长期开着大仓库,偶尔重启 Atom 也能解决标记卡死现象。


















