Vì Git không biết thư mục, chỉ có tệp, cấu trúc thư mục trống không kết thúc trong kho lưu trữ. Tuy nhiên, vì nhiều khuôn khổ và dự án thực sự cần chúng, chúng nên kết thúc ở đó. Một thực tế phổ biến là tạo cái gọi là tệp giữ chỗ (thường được gọi là .gitkeep), nó chỉ định ngầm cấu trúc thư mục. Có thể dễ dàng tạo các tệp này và nếu muốn, cũng đảm bảo rằng các tệp khác trong thư mục sẽ bị bỏ qua.
Đầu tiên, chúng tôi tạo một kho lưu trữ thử nghiệm và tạo một số thư mục con:
434e6616f335599d241482f169f68f1b
Bây giờ chúng ta có cấu trúc thư mục sau:
434e6616f335599d241482f169f68f1b
Như mong đợi, trạng thái git -u cho chúng ta thấy không có thay đổi nào:
Bây giờ chúng tôi sẽ sử dụng tìm để tạo tệp giữ chỗ ở tất cả các vị trí cần thiết:
434e6616f335599d241482f169f68f1b
Bây giờ chúng tôi đã nhận được cấu trúc thư mục / tệp sau:
434e6616f335599d241482f169f68f1b
Trạng thái git -u bây giờ cho chúng ta thấy rằng tất cả các thư mục (ngầm định) kết thúc trong kho lưu trữ:
Nếu bây giờ chúng ta muốn đảm bảo rằng cấu trúc thư mục luôn kết thúc trong kho lưu trữ, nhưng không phải bất kỳ tệp nào (ngoài tệp giữ chỗ), chúng ta tạo một gitignore:
434e6616f335599d241482f169f68f1b
Chúng tôi sử dụng Cú pháp dấu sao kép:
434e6616f335599d241482f169f68f1b
Dòng đầu tiên bỏ qua đệ quy tất cả các tệp và thư mục (ở bất kỳ cấp nào) trong thư mục "foo", dòng thứ hai loại trừ một cách đệ quy tất cả các thư mục khỏi quy tắc này (ở bất kỳ cấp nào) và dòng thứ ba loại trừ tất cả các tệp .gitkeep (ở mọi cấp) .
Bây giờ hãy tạo một số tệp thử nghiệm:
434e6616f335599d241482f169f68f1b
Trạng thái git -u hiện cho chúng ta thấy kết quả mong muốn: