Tôi vô tình cam kết một số dữ liệu nhị phân lớn vào một số cam kết. Kể từ đó tôi đã cập nhật .gitignore của tôi và các tệp đó không còn được cam kết nữa. Nhưng tôi muốn quay trở lại các commit cũ hơn và chọn lọc các dữ liệu này từ kho lưu trữ, loại bỏ một vài thư mục cần có trong .gitignore. Tôi không muốn loại bỏ các cam kết.Prune dữ liệu nhị phân từ kho git sau khi thực tế
Làm cách nào để tôi hoàn thành việc này? Phương pháp ưa thích của tôi sẽ là một số cách để áp dụng lại các quy tắc .gitignore cho các commit cũ ... một câu trả lời sử dụng phương thức này cũng sẽ khá hữu ích cho người khác, vì tôi chắc chắn rằng vấn đề của tôi không phải là duy nhất. Nó cũng sẽ nhanh chóng áp dụng cho một giải pháp chung, không có nhiều tùy chỉnh cụ thể cho cấu trúc thư mục duy nhất của mỗi người dùng.
Điều này có thể, hoặc là cách dễ dàng tôi đề xuất ở trên hoặc theo cách phức tạp hơn?
Xem [git: vĩnh viễn xóa tệp hoặc thư mục khỏi lịch sử] (http://dound.com/2009/04/git-forever-remove-files-or-folders-from-history/) và [Xóa các tệp nhị phân lớn từ kho lưu trữ] (https://groups.google.com/forum/#!topic/github/ghXxynyhj0o). Họ nên giúp đỡ. – marcog
Googling cho 'git remove file from history' sẽ giải quyết được vấn đề của bạn. Bằng cách này, rebasing một thay đổi để .gitignore vào lịch sử đầu và sau đó bằng cách nào đó áp dụng trở lại .gitignore cho tất cả các cam kết có khả năng sẽ không giúp đỡ nhiều, bởi vì đôi khi bỏ qua các tập tin được cố ý kiểm tra trong, và bạn sẽ không muốn mất những người đó. –