2012-08-07 25 views
17

không chắc chắn lý do tại sao tính năng này không hoạt động, vì tôi đã thực hiện việc tải này! Có lẽ tôi đang gặp một ngày tồi tệ ...gitignore - chỉ cho phép một số tiện ích và tệp nhất định

Tôi đang sử dụng đoạn mã sau để bỏ qua tất cả các file trừ tên tập tin nhất định và mở rộng

* 
!.gitattributes 
!.gitignore 
!readme.md 
!.gitkeep 
!*.php 

Đối với một số lý do, nó chỉ cho phép tôi cam kết .gitignore và readme.md, mặc dù tôi có các tập tin php trong thư mục con vv Có điều gì sai trái với nó không? Chỉ cần fyi, tôi đang sử dụng "git add -A" để nhận các tệp cần cam kết.

Cảm ơn trước!

Trả lời

32

Giải pháp là để nói với Git không bỏ qua các tiểu thư mục:

* 
!.gitattributes 
!.gitignore 
!readme.md 
!.gitkeep 
!*.php 
!*/ 

Nếu không, chỉ *.php tập tin trong thư mục cấp cao đầu tiên sẽ được chấp nhận và tất cả các thư mục con sẽ bị bỏ qua.

+0

Không chắc lý do tại sao tôi không bao giờ phải làm điều đó trước đây, nhưng hoạt động tuyệt vời ngay bây giờ. Cảm ơn! – jleck

+0

Sử dụng *. *. Việc có * ở trên cùng sẽ loại trừ mọi tệp * .php nằm trong thư mục con. Câu trả lời này không đúng. –

3

Phương pháp tinh vi nhất để đạt được điều này

tạo .gitignore tập tin trong kho root, và thêm bên dưới dòng để .gitignore tập tin

*.* 
!.gitattributes 
!.gitignore 
!readme.md 
!.gitkeep 
!*.php 

này sẽ bao gồm tất cả các file được chỉ định từ thư mục và thư mục con đệ quy.

thử nghiệm trên

phiên bản git 2.12.2.windows.2

+1

Tôi thích câu trả lời này tốt hơn câu trả lời vì nó hoạt động vượt quá một mức đệ quy – Magnus

Các vấn đề liên quan