मैंने गलती से जोड़ा, प्रतिबद्ध किया और एक बहुत बड़ी बाइनरी फ़ाइल को अपने बहुत नवीनतम कमिट के साथ जीआईटी रिपॉजिटरी में धकेल दिया।
मैं Git को उस वस्तु (ओं) को कैसे हटा सकता / सकती हूं जो उस प्रतिबद्ध के लिए बनाई गई थीं ताकि मेरी .git
निर्देशिका फिर से एक आकार में सिकुड़ जाए?
संपादित करें : आपके उत्तर के लिए धन्यवाद; मैंने कई उपाय आजमाए। किसी ने काम नहीं किया। उदाहरण के लिए GitHub से किसी ने इतिहास से फाइलें हटा दी हैं, लेकिन .git
निर्देशिका का आकार कम नहीं हुआ है:
$ BADFILES=$(find test_data -type f -exec echo -n "'{}' " \;)
$ git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch $BADFILES" HEAD
Rewrite 14ed3f41474f0a2f624a440e5a106c2768edb67b (66/66)
rm 'test_data/images/001.jpg'
[...snip...]
rm 'test_data/images/281.jpg'
Ref 'refs/heads/master' was rewritten
$ git log -p # looks nice
$ rm -rf .git/refs/original/
$ git reflog expire --all
$ git gc --aggressive --prune
Counting objects: 625, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (598/598), done.
Writing objects: 100% (625/625), done.
Total 625 (delta 351), reused 0 (delta 0)
$ du -hs .git
174M .git
$ # still 175 MB :-(