Oh god I wasted hours on this probably
I have a huge 3 GB git repository that the class I am grading for, uses to track all the student submissions and our grading. My hard drive is constantly teetering below 1 GB of free space so I started having git pull’s fail due to lack of hard drive space (and it’s a PAIN to recover from that issue when half the files are around and half aren’t).
I naturally tried removing the files locally. This does work if I am religious about only using git add -u .
in the specific folder (HW0/my_name) that I was working in.
However I rely in constantly looking at git status and it was totally unusable since it would just have 100s of lines of “deleted: “.
After trying out various combinations of .gitignore, git update-index --skip-worktree, git update-index --assume-unchanged -- graders/HW5/ etc., sparse-checkout, .git/info/exclude
, etc. The solution is just a single line (but one that may have to be run repeatedly):
rm -rf HW1 HW2 HW3
git ls-files --deleted -z | git update-index --assume-unchanged -z --stdin
This ignores ALL files listed as “deleted” under “git status” prior to running the above line.
Hurray!
Thanks to: https://stackoverflow.com/questions/4589333/git-ignore-locally-deleted-folder
Side note: I bought myself a 2 TB SSD and hopefully that should alleviate some of this, eventually, when I get around to all of the time consuming exporting files from the existing hard drive etc. Hopefully it goes smoothly, wish me luck!
Very creative! Thanks
You’re welcome, hope it helped!