提交前想抓空格问题,可以先跑 git diff --check

43 次浏览1 条回复

有时候代码逻辑没问题,评审却发现行尾多了空格,或者补丁混进了空白错误。提交前可以在仓库里跑:

git diff --check

它会检查当前未提交改动,发现 trailing whitespace 或新增空行里的空格时给出文件和行号。命令只检查,不会自动改文件。

环境:Git 1.7.7+。如果改动已经暂存但工作区没有差异,可以再看 git diff --cached --check;接到 pre-commit hook 里也挺顺手。

这个很适合直接放进提交钩子里。补充一点:如果想让脚本在发现问题时阻止提交,git diff --check 的退出码也会反映检查结果;暂存区提交前则要用 git diff --cached --check,不然可能漏掉已经 git add 的改动。