Tệp của bạn có vẻ tốt. Chỉ cần chắc chắn rằng bạn không có bất kỳ loại khoảng trống nào ở đầu mỗi dòng, tôi mất 4 giờ để tìm lý do tại sao .gitignore của tôi không hoạt động chính xác; lý do là tất nhiên một vấn đề cut'n'paste nơi tôi đã có một đường thẳng đứng của không gian ở đầu của tập tin.
Bạn nên cẩn thận với git commit -a
trước khi đảm bảo rằng tệp .gitignore của bạn thực sự làm sạch mọi thứ bạn không muốn. Đánh dấu từng tệp (hoặc sử dụng ký tự đại diện) với git add *.cpp *.h
hoặc - như tôi thích - phát triển .gitignore của bạn khi bạn tiến bộ và luôn kiểm tra với git status
trước khi cam kết.
Nếu bạn muốn kiểm tra lại rằng .gitignore của bạn thực sự hoạt động, try
git ls-files --others -i --exclude-standard
này nên liệt kê tất cả các tập tin mà bạn đang bỏ qua.
Để làm sạch các tập tin mà bạn đã thêm vào (có thể sử dụng git add .
, một sai lầm tất cả chúng ta thực hiện trong đầu =]), bạn có thể làm như @VonC nói: hoặc chạy
git rm <filename>
hoặc
git rm --cached <filename>
Một tùy chọn khác để xóa tất cả các tệp bạn đã vô ý thêm là xóa hoàn toàn kho lưu trữ của bạn và sau đó thêm lại mọi thứ. Nếu bạn muốn hiểu rõ ràng tất cả mọi thứ trong khu vực dàn, you can run
git --rm cached .
Nhưng hãy nhớ để không chạy git add .
Cho đến khi bạn đã thực hiện chắc chắn rằng tình trạng git chỉ liệt kê các tập tin bạn thực sự muốn trong kho.
Một điều rất hữu ích khác với git là nó không cần đường dẫn đến tệp khi sử dụng ký tự đại diện. Nếu bạn liệt kê các file bỏ qua của bạn và thấy rằng bạn muốn xoá tất cả *.suo
và *.log
file, chỉ cần chạy
git rm --cached *.suo *.log
và git sẽ chăm sóc của việc tìm kiếm tất cả các tập tin trong kho của bạn phù hợp với chữ ký ở bất cứ đâu trong cây họ đang có.
điều này phải là lý do vâng, cảm ơn. – Darkmage