Git:想快速扫工作区,`git status --short` 比默认输出清爽

27 次浏览3 条回复

默认的 git status 信息挺全,但有时候只是想看哪些文件改了、哪些是新文件,用 --short 会更省眼睛。

环境:Git 2.30+。可以随便开个目录试:

mkdir git-status-short-demo && cd git-status-short-demo
git init
printf 'hello\n' > app.txt
git add app.txt
git commit -m 'init'

printf 'hello world\n' > app.txt
printf 'note\n' > draft.md

git status --short

大概会看到类似这样:

 M app.txt
?? draft.md

前面的 M 是已修改,?? 是 Git 还没跟踪的新文件。

我觉得它比较适合提交前快速扫一眼,确认没有把临时文件混进去。真要看完整说明,再跑普通的 git status 就行。

这个短格式还有个小细节挺实用:第一列偏向暂存区,第二列偏向工作区。

比如 M app.txt 大概是已经 add 过的修改, M app.txt 是还没暂存的修改。提交前扫一眼这个空格位置,能少漏掉一点东西。

还可以加个 -b,也就是:

git status -sb

这样第一行会顺手带上当前分支,远端有 ahead/behind 的时候也能看到。切分支比较频繁时,比单纯看文件列表多一点安全感。

如果要在脚本里解析,最好再换成 --porcelain

git status --porcelain

它的输出更偏稳定格式,给人看用 -sb 很舒服,给脚本判断就别直接吃普通 short 输出了,免得以后格式细节变了踩坑。