I'm going to archive an old huge project containing a lot of garbage. I hope I'll never need it again, but I want to put all important things under version control. Because of the chaos in the project, it's not easy to say what are the sources and what can go away (there's no makefile
, no make clean
, nothing). So I'd like to put there nearly everything and consider only the largest files for exclusion.
How can I list the files to be committed (or to be staged) together with their size?
I could write a script or whatever, but hope for a simpler solution. I'm working under Cygwin and the only gui available is git gui
which doesn't show the file sizes. Otherwise it'd be perfect for what I need.
You could try this. It finds all files larger than 1M and sorts them from largest to smallest. The file sizes printed are in bytes:
cd ~/files_to_archive
find . -type f -size +1M -printf '%s %p\n' |sort -nr
Output:
74751072 ./linux-2.6.38-rc4.tar.bz2
34686037 ./git-source.tar.gz
14026384 ./Python-2.7.tar.gz
Updated: loop over the files returned by find
and print their git
status:
git ls-files -t `find . -type f -size +1M |xargs`