Computer >> Hướng Dẫn Máy Tính >  >> Xử Lý Sự Cố >> Lỗi Windows

Sửa lỗi: .gitignore không hoạt động trên GitHub/Git

GitHub là nền tảng hợp tác mã nguồn và chia sẻ kho chứa (repository) hàng đầu. Git là phần mềm kiểm soát phiên bản phân tán. Tuy nhiên, lập trình viên thường gặp vấn đề .gitignore không hoạt động – Git bỏ qua file .gitignore hoặc chỉ hoạt động một phần.

Sửa lỗi: .gitignore không hoạt động trên GitHub/Git

.gitignore là gì?

Git phân loại mọi file trong thư mục làm việc thành 3 nhóm:

  • Đã theo dõi (Tracked): File đã commit hoặc staged trước đó.
  • Chưa theo dõi (Untracked): File chưa từng staged hoặc commit.
  • Đã bỏ qua (Ignored): File do người dùng yêu cầu Git bỏ qua hoàn toàn.

Các file bị bỏ qua thường là file tạo ra bởi máy (machine-generated) hoặc kết quả build (build artifacts). Ví dụ:

  • Mã đã biên dịch: .class, .pyc, .ccp...
  • File hệ thống ẩn: DS_Store, Thumbs.db...
  • Thư mục đầu ra build: /bin, /out...
  • Cache phụ thuộc: /node_modules, /packages...
  • File cấu hình IDE.
  • File sinh ra tại runtime.

File .gitignore đặt tại gốc repository, chứa các mẫu (patterns) khớp với tên file để quyết định bỏ qua. Không có lệnh gitignore riêng, bạn phải chỉnh sửa file thủ công.

Tại sao .gitignore không hoạt động?

Thường do cấu hình không đúng hoặc điều kiện không thỏa mãn. Dưới đây các giải pháp phổ biến:

Giải pháp 1: Kiểm tra định dạng file .gitignore

Notepad Windows mặc định lưu file dạng Unicode thay vì ANSI, khiến Git không nhận diện.

  1. Mở file trong Notepad, File > Save As.
Sửa lỗi: .gitignore không hoạt động trên GitHub/Git
  1. Tại Encoding chọn ANSI, xóa đuôi .txt, đặt tên .gitignore, lưu đúng thư mục.
Sửa lỗi: .gitignore không hoạt động trên GitHub/Git
  1. Kiểm tra file vừa tạo, test lại với Git.

Khuyến nghị: Dùng Notepad++, VS Code... thay vì Notepad mặc định.

Giải pháp 2: Kiểm tra file cần bỏ qua

Git chỉ bỏ qua file chưa được theo dõi (untracked). Nếu file đã có trong repository (đã add/commit), .gitignore sẽ không có tác dụng.

Hãy xóa file khỏi repository (git rm --cached), commit thay đổi, sau đó thêm quy tắc vào .gitignore.

Giải pháp 3: Thêm lại file vào Repository (Re-index)

Nếu đã thêm quy tắc vào .gitignore nhưng file vẫn bị theo dõi, hãy xóa toàn bộ index và thêm lại:

  1. Chạy lệnh:
    git rm -r --cached .
    (Gỡ stage và xóa đường dẫn khỏi index đệ quy).
  2. Chạy lệnh:
    git add .
    (Thêm lại tất cả, lúc này .gitignore sẽ được áp dụng).
  3. Commit:
    git commit -m ".gitignore is now working"

Lưu ý: Sao lưu code trước khi thực hiện.