Bỏ qua phần mở rộng thế nào? Dùng * và **

*.log bỏ qua tên kết thúc bằng .log trong phạm vi .gitignore. Với thư mục cụ thể, quyết định có bao gồm đường dẫn lồng nhau không.

1. Bỏ qua phần mở rộng trong toàn dự án

Trong .gitignore gốc, mẫu khớp app.log, logs/app.log và src/app.log. * đại diện không hoặc nhiều ký tự trừ /; khi mẫu không có /, Git kiểm tra tên ở mọi độ sâu dưới .gitignore.

Viết mỗi mẫu trên một dòng. Đây là mẫu bỏ qua Git, không phải lệnh shell hay biểu thức chính quy: *.{log,tmp} không phải danh sách phần mở rộng trong cú pháp này.

*.log

2. Giới hạn mẫu vào thư mục

Cách đầu khớp logs/app.log nhưng không khớp logs/archive/app.log. Cách thứ hai khớp cả hai: /**/ cho phép không hoặc nhiều thư mục trung gian. Cả hai không khớp src/app.log.

Chỉ áp dụng một cách mỗi lần để so sánh. /logs/ có thể che tệp lồng nhau bằng cách loại cha của chúng; hãy kiểm tra quy tắc khác trước khi đánh giá ký tự đại diện.

/logs/*.log
/logs/**/*.log

Bỏ qua thư mục thế nào? folder/ và /folder/

3. Kiểm tra các đường dẫn tiêu biểu

Chọn một quy tắc, tạo ba tệp chưa theo dõi và xem mẫu khớp:

git check-ignore -v -- logs/app.log logs/archive/app.log src/app.log

Với /logs/**/*.log, hai đường dẫn dưới logs phải khớp, src/app.log thì không. Kết quả bắt đầu bằng ! là ngoại lệ; muốn giữ một tệp thì dùng ngoại lệ rõ ràng và giữ thư mục cha có thể duyệt.

Vì sao ! không giữ được tệp trong thư mục bị bỏ qua?

Xem tài liệu chính thức để biết hành vi chính xác và thông tin chi tiết: Tài liệu Git · Tài liệu git check-ignore