Tôi đã vô tình thêm, cam kết và đẩy một tệp nhị phân khổng lồ với cam kết mới nhất của mình vào kho lưu trữ Git.
Làm cách nào để tôi có thể yêu cầu Git xóa (các) đối tượng đã / được tạo cho cam kết đó để .git
thư mục của tôi thu nhỏ lại kích thước bình thường?
Chỉnh sửa : Cảm ơn câu trả lời của bạn; Tôi đã thử một số giải pháp. Không có tác dụng nào. Ví dụ: một từ GitHub đã xóa các tệp khỏi lịch sử, nhưng .git
kích thước thư mục không giảm:
$ 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 :-(