0

silly me...

so i as blindly adding files to git with git add ., not realising that there were some stupidly large tarballs in the path. and of course not having the relevant .gitignore in place.

of course, i didn't think too much of it, and didn't run a git status before committing it... and then some other commits too.

so...

$ git ls-files | xargs ls -l | sort -nrk5 | head -n 10
-rw-r--r-- 1 ytl sf 3046648860 Oct 18  2018 images/rosetta/rosetta_src_3.10_bundle.tgz
-rw-r--r-- 1 ytl    sf   160017409 May 15 14:32 images/chimera/1.13.1/chimera-1.13.1-linux_x86_64.bin
-rw-r--r-- 1 ytl    sf   4768999 Oct 16  2018 images/protomo/deplibs.tar.bz2
-rwxrwxr-x 1 ytl    sf   2662328 Apr 24  2019 images/motioncor2/1.2.3-intpix/MotionCor2

and

$ git log --pretty="%h - %s"
cbc481c - remove large files
0b3e0d8 - add checks
f318f18 - modify cluster
f44838c - lots of changes...
ac7d198 - pick up parent bin.files

ac7d198 is just before my stupidness. cbc481c contains me trying to do git rm --cached <files>. of course, when i do a push, it will still try to put the files into git...

so... i know that if i just do a git checkout, it will basically remove the files from the file system that were added after that checkout.

so my question is how can i revert everything back to ac7d198 without loosing any data? or even better, how can i just remove just the large files from the commit?

yee379
  • 6,498
  • 10
  • 56
  • 101

0 Answers0