![相对于当前脏状态,上次提交的修改次数超过‘n’次的文件的 Git 列表](https://linux22.com/image/1570518/%E7%9B%B8%E5%AF%B9%E4%BA%8E%E5%BD%93%E5%89%8D%E8%84%8F%E7%8A%B6%E6%80%81%EF%BC%8C%E4%B8%8A%E6%AC%A1%E6%8F%90%E4%BA%A4%E7%9A%84%E4%BF%AE%E6%94%B9%E6%AC%A1%E6%95%B0%E8%B6%85%E8%BF%87%E2%80%98n%E2%80%99%E6%AC%A1%E7%9A%84%E6%96%87%E4%BB%B6%E7%9A%84%20Git%20%E5%88%97%E8%A1%A8.png)
由于存储库非常庞大,追踪变化就变得十分困难。
Github
每个文件显示一个统计信息(修改的总行数;也包括添加或删除的行数)。我们能否在终端中列出所有处于脏状态(未提交和未暂存)的文件(存储库中的)相对于上次本地提交的统计信息(只有一个数字)?
答案1
不是直接的——最好的近似值是
git diff --numstat
它给出了两个数字:添加和删除的行数。你可以像这样将这两个数字相加:
git diff --numstat | awk -F '\t' '{print $1+$2, $3}'
将在工作树和索引之间进行差异分析。您可以选择添加索引与 HEAD 比较的diff
选项,也可以只添加工作树与 HEAD 比较的选项。但据我理解,您的问题“工作树与 HEAD 减去索引”是不可能的。--cached
HEAD
因此完整的命令是:
git diff --numstat --cached | awk -F '\t' '{print $1+$2, $3}'
git diff --numstat HEAD | awk -F '\t' '{print $1+$2, $3}'