Tôi đã tự hỏi liệu có ai có cách hiệu quả hơn, thông minh hơn để thực hiện việc này không. Cấu trúc vòng lặp yêu cầu mọi tệp đã xóa sẽ bị xóa khỏi mọi cam kết bằng cách đọc từng cam kết. Với nhiều cam kết, điều này mất một thời gian dài.git xóa tất cả các tệp đã xóa khỏi toàn bộ lịch sử
git log --pretty=format: --name-status | grep -i ^D | cut -f2- | sort -u | xargs -I {} git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch {}' HEAD
Tôi đã tìm thấy 'grep -v -x -f/tmp/files-in-repo.txt' cùng với' xargs --delimiter = \\ n -r git rm ... 'hữu ích. –