0

Trình kiểm tra Gitignore

Dán quy tắc .gitignore của bạn và danh sách đường dẫn tệp để xem chính xác tệp nào bị bỏ qua, quy tắc và dòng chính xác nào cũng như quy tắc phủ định nào đã chết âm thầm vì thư mục mẹ đã bị bỏ qua.

Buy Me a Coffee at ko-fi.com
Đang xử lý... 0%
Phân tích quy tắc .gitignore
Đường dẫn tệp phù hợp
Xong

kết quả

"Tại sao phủ định .gitignore của tôi không hoạt động?" là một trong những câu hỏi về git phổ biến nhất và câu trả lời trung thực hầu như luôn giống nhau: một `!pattern` cố gắng đưa lại một tệp vào trong một thư mục mà quy tắc trước đó đã loại trừ không bao giờ có thể hoạt động, vì git không đi vào các thư mục bị bỏ qua để kiểm tra lại bất cứ thứ gì bên trong chúng. Công cụ này triển khai lại thuật toán đối sánh .gitignore thực tế của git - không phải là gần đúng - cụ thể là để nó có thể nắm bắt và giải thích tình huống chính xác đó, cùng với mọi quy tắc mẫu khác mà git hỗ trợ.

Dán các quy tắc .gitignore của bạn vào một hộp và danh sách các đường dẫn tệp (mỗi đường dẫn trên mỗi dòng, như `dist/index.js`, `node_modules/foo/bar.js` hoặc `.env`) vào hộp còn lại, đồng thời công cụ sẽ đánh giá từng đường dẫn chính xác theo cách git sẽ làm: nhận xét và dòng trống bị bỏ qua, dấu cách ở cuối bị xóa trừ khi thoát, `!` ở đầu phủ nhận một quy tắc, `/` ở đầu sẽ neo nó vào thư mục gốc thay vì để nó khớp với bất kỳ độ sâu nào, dấu `/` giới hạn nó trong các thư mục và các lớp ký tự `*`, `?`, `[abc]` và `**` (khớp giữa các ranh giới thư mục) tất cả đều hoạt động theo quy tắc toàn cầu được ghi lại.

Quan trọng hơn, các đường dẫn được kiểm tra từng thư mục từ thư mục gốc trở xuống, giống như cách hoạt động của công cụ bỏ qua của git — không phải bằng cách kiểm tra đường dẫn đầy đủ theo từng quy tắc một cách riêng biệt. Đó là điều giúp có thể phát hiện chính xác trường hợp phủ định chết: nếu `dist/` bị bỏ qua trên dòng 3 và `!dist/keep.js` sau đó cố gắng giải cứu một tệp bên trong nó, công cụ này sẽ báo cáo `dist/keep.js` là vẫn bị bỏ qua, đặt tên cho quy tắc dòng 3 là lý do và gắn cờ riêng cho phủ định là bị ẩn thay vì âm thầm giả vờ như nó hoạt động.

Bảng kết quả cung cấp cho mỗi đường dẫn được kiểm tra hàng riêng của nó với phán quyết rõ ràng có/không bị bỏ qua, văn bản quy tắc chính xác và số dòng đã quyết định đường dẫn đó và - bất cứ khi nào có liên quan - một ghi chú bằng ngôn ngữ đơn giản giải thích phủ định bị ẩn hoặc quy tắc thư mục gốc được kế thừa. Đó là chi tiết biến .gitignore khó hiểu thành một thứ mà bạn thực sự có thể lý giải trước khi cam kết.