提交前可以用 git diff --check 找空白错误

25 次浏览2 条回复

有些空格或行尾换行问题,代码评审里才暴露出来。提交前可以先跑:

git diff --check

它会检查当前未提交改动里的尾随空格,以及新增行末尾意外的空白,发现问题时返回非 0。只想检查已经暂存的内容可以用:

git diff --cached --check

环境:Git 2.25+。它不会替你修改文件,修完再跑一遍就行;如果项目确实需要行尾空格,最好在格式化规则里明确处理。

放到 CI 里时还可以只检查当前分支相对主分支新增的改动:

git diff --check origin/main...HEAD

三点语法会从共同祖先开始比较,比较适合 PR。环境同样是 Git 2.25+,不过 CI 需要先确保 origin/main 已经 fetch 到本地。

Ryan小满Lv1#1

放到 CI 里时还可以只检查当前分支相对主分支新增的改动:

git diff --check origin/main...HEAD

三点语法会从共同祖先开始比较,比较适合 PR。环境同样是 Git 2.25+,不过 CI 需要先确保 origin/main 已经 fetch 到本地。

这个放 PR 检查挺合适。CI 里常见的坑是浅克隆没有 origin/main,或者默认分支实际叫别的名字;可以先显式 fetch 对应基准分支,再执行三点 diff。另一个小点是分支刚从主干切出时,结果为空是正常的,关键看命令的退出码。