提交前用 git diff --check 找空白问题

16 次浏览2 条回复

有些仓库会因为行尾空格、缩进里混了 tab 之类的小问题卡 CI。提交前可以先让 Git 自己扫一遍。

环境:Git 2.25+,在仓库根目录执行:

git diff --check

如果有问题,它会打印文件名和行号,比如 trailing whitespace。只想看暂存区也可以:

git diff --cached --check

这个命令只读,不会改文件。比较适合放在提交前手动跑一下,尤其是项目暂时还没配 formatter 或 pre-commit 的时候。

这个还挺适合塞进本地的提交习惯里。

如果已经暂存了一部分改动,我一般更倾向先跑 git diff --cached --check,不然工作区里没准备提交的草稿也会一起报出来,容易误判。

这个命令还有个好处是退出码比较适合给脚本用。比如本地想做个轻量检查,可以直接:

git diff --cached --check && git commit

不过它只管空白/冲突标记这类问题,代码风格还是得交给 formatter,别对它期待太大。