如何找出要提交的文件的空间要求?

时间:2011-03-07 00:43:24

标签: git size commit

我要归档一个包含大量垃圾的旧项目。我希望我再也不需要它,但我想把所有重要的东西都置于版本控制之下。由于项目中的混乱,不容易说出什么是来源和什么可以消失(没有makefile,没有make clean,没有什么)。 所以我想把几乎所有东西放在那里,只考虑最大的文件排除。

如何列出要提交(或暂存)的文件及其大小?

我可以写一个脚本或其他什么,但希望有一个更简单的解决方案。我在Cygwin下工作,唯一可用的gui是git gui,它没有显示文件大小。否则它对我需要的东西来说是完美的。

3 个答案:

答案 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