Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

File .gitignore không hoạt động? Hướng dẫn khắc phục

Có nhiều trường hợp file .gitignore không hoạt động như mong đợi. File này đóng vai trò quan trọng: nếu không hoạt động, bạn có thể vô tình theo dõi file nhạy cảm như API key.

Hai nguyên nhân chính:

  • Thêm file vào .gitignore sau khi đã commit.
  • Sai tên file hoặc đường dẫn trong .gitignore.

Bài viết giải thích cả hai vấn đề và cách khắc phục.

File .gitignore là gì?

File .gitignore liệt kê file/thư mục không muốn lưu vào kho Git. Thường dùng cho file cấu hình, môi trường chứa thông tin riêng tư. File phải tên chính xác .gitignore (file text thường). Bên trong khai báo đường dẫn file/thư mục muốn Git bỏ qua. Mọi thứ trong file này Git sẽ bỏ qua, không thêm vào cây theo dõi.

Ví dụ nội dung .gitignore:

node_modules/ .env

Bỏ qua file .env (chứa API key) và thư mục node_modules (gói NPM). Các file thường bỏ qua: .DS_Store (macOS), .env, file config. File .gitignore thường đặt ở thư mục gốc kho.

Trường hợp A: Thêm vào .gitignore sau khi đã commit

Nếu đã commit file nhầm, sau đó thêm vào .gitignore nhưng Git vẫn theo dõi. Lý do: Git đã theo dõi từ trước. Để bỏ theo dõi, chạy:

git rm -rf --cached <đường-dẫn>

git rm xóa đường dẫn. Cờ --cached xóa khỏi index nhưng giữ file trên máy. -r đệ quy cho thư mục, -f buộc xóa. Nếu chỉ file đơn lẻ:

git rm --cached <file>

Sau lệnh này, Git hiểu không theo dõi file/thư mục nữa. Thử lại, .gitignore sẽ hoạt động bình thường. Nhớ khai báo đúng đường dẫn trong .gitignore!

Trường hợp B: .gitignore tạo trước commit nhưng vẫn không bỏ qua file

Giải pháp có thể đơn giản là kiểm tra tên file/đường dẫn. Phải chỉ định chính xác file muốn bỏ qua. Lỗi chính tả hoặc sai đường dẫn phải tự sửa.

Ví dụ: viết *.pyyc nhưng thực tế muốn bỏ qua .pyc (file config Python). Sửa thành:

*.pyc

Kho sẽ bỏ qua tất cả file .pyc. Cũng kiểm tra không có khoảng trắng thừa đầu/cuối dòng khai báo.

Kết luận

Đã thảo luận các trường hợp và giải pháp khi .gitignore không hoạt động. Bí quyết: hiểu rõ vị trí file/thư mục để khai báo đúng đường dẫn. Thêm vào .gitignore ngay khi tạo file. Nếu commit nhầm, dùng git rm -rf --cached <đường-dẫn> để loại khỏi Git, sau đó thêm vào .gitignore.

Lưu ý: Có trường hợp git reset hữu ích (quay ngược thời gian). Xem bài viết về git reset để biết thêm.