我要归档一个包含大量垃圾的旧项目。我希望我再也不需要它,但我想把所有重要的东西都置于版本控制之下。由于项目中的混乱,不容易说出什么是来源和什么可以消失(没有makefile
,没有make clean
,没有什么)。 所以我想把几乎所有东西放在那里,只考虑最大的文件排除。
如何列出要提交(或暂存)的文件及其大小?
我可以写一个脚本或其他什么,但希望有一个更简单的解决方案。我在Cygwin下工作,唯一可用的gui是git gui
,它没有显示文件大小。否则它对我需要的东西来说是完美的。
答案 0 :(得分:2)
你可以试试这个。它会查找大于1M的所有文件,并将它们从最大到最小排序。打印的文件大小以字节为单位:
cd ~/files_to_archive
find . -type f -size +1M -printf '%s %p\n' |sort -nr
输出:
74751072 ./linux-2.6.38-rc4.tar.bz2
34686037 ./git-source.tar.gz
14026384 ./Python-2.7.tar.gz
更新:循环显示find
返回的文件并打印其git
状态:
git ls-files -t `find . -type f -size +1M |xargs`
答案 1 :(得分:0)
对于第一个近似值,目录树顶部的du -sk .
将为您提供所需的空间。在你git gc
之后,这可能是一种过高的估计。
但是在你达到退出项目之前很久就应该使用版本控制了。
答案 2 :(得分:-1)
我不知道Git,但是如果你使用的是Mercurial,你可以使用以下组合:
ls -laS
hg status