查看未跟踪文件的文件大小对我来说非常方便。也许是更改文件的旧/新大小。
是否可以通过配置git来显示它?
答案 0 :(得分:2)
不,您不能让git status
那样做。
您可能不需要 进行git status
的操作,因为您可以编写自己的 own 命令。使用:
git -C "$(git rev-parse --show-cdup)" ls-files --other --exclude-standard
获取文件列表。然后,您可以使用所需的任何命令来查看有关这些文件的统计信息。您可能要在git status
之后立即运行此命令,并让git status
禁止使用--untracked-files=no
列出自己的列表。例如:
alias st='git status -uno;
git -C "$(git rev-parse --show-cdup)" ls-files --others --exclude-standard -z |
xargs -0 ls -lR'
这里我也使用了-z
,因为我正在使用的命令xargs -0 ls -l
可以处理该问题,并将其表示为 shell 别名而不是< em> Git 别名。
这里有一个缺陷。尽管git status
和-uall
会枚举目录中所有未跟踪的文件,但git ls-files --others
不会:它的行为类似于默认的git status
,仅通过打印包含以下内容的文件来汇总此类文件目录名称。这里的ls -l
将显示目录中的文件;要停止此操作,请改用ls -ld
,但是您当然看不到任何文件大小。
(要获取修改的文件,请使用git ls-files -m
而不是--others
。)
答案 1 :(得分:0)
git status --porcelain | awk '{print $2}' | xargs ls -hs | sort -h
The git status --porcelain
将显示文件已更改。$ git status
?? IMG_20160813_205506_AO_HDR.jpg
?? IMG_20160813_205539_AO_HDR.jpg
?? IMG_20160813_211139_HDR.jpg
?? IMG_20160814_143649_HDR.jpg
awk '{print $2}'
将在??
之后精确显示内容ls -hs
将以人类可读的格式显示每个文件的大小。然后sort -h
将按大小对它们进行排序。答案 2 :(得分:0)
尝试将以下代码添加到您的.bashrc或.zshrc中。然后使用gst
获得带有文件大小信息的漂亮格式输出
alias gst="git_status_size"
git_status_size(){
git status --porcelain | awk '{print $2}' | xargs ls -hl | sort -r -h | awk '{print $5 "\t" $9}'
}
输出:
$ gst
287MB video.mp4
53B README.md
33B 222.txt
18B 333.txt
6B 111.txt