2013-02-24 35 views
14

Tôi có nhiều thư mục con trong repo của mình, trong đó có ít thư mục build/ tôi muốn bỏ qua khi thực hiện mã của mình. Theo tôi được biết, có hai cách để bỏ qua tất cả các thư mục:Các thư mục con trong .gitignore

  • */build/ (Unix ký tự đại diện)
  • build/ (git cách bỏ qua các tập tin/thư mục)

tôi ve tìm thấy Git ignore sub folders nhưng nó có hai câu trả lời và tôi muốn biết sự khác biệt (không?) giữa hai cách tiếp cận là. Quy tắc tương tự có áp dụng cho các tệp không?

Trả lời

32

build/ là cách phù hợp để thực hiện. Nó sẽ bỏ qua bất kỳ tệp nào nằm trong các thư mục build cho dù các thư mục này nằm sâu trong repo của bạn đến mức nào.

*/build/ có nghĩa là bỏ qua build thư mục là chính xác một cấp sâu bên trong kho lưu trữ của bạn. Vì vậy, ví dụ các tệp bên trong buildfoo/bar/build sẽ không bị bỏ qua.

Nếu bạn cần kiểm soát chi tiết hơn, bạn luôn có thể thêm các thư mục cụ thể để loại trừ nhưng cũng không loại trừ sử dụng tiền tố ! làm tiền tố.

+1

Tôi đã thử tất cả các loại biến thể về điều này và không thể nhận 'git add'' trên repo trống để bỏ qua thư mục và tất cả các tệp trong tất cả các thư mục con của thư mục đó. Tôi đã thử 'dirname /', 'dirname/*', 'dirname/**', 'dirname/*/*', ngay cả trong tuyệt vọng 'dirname/*/*/*', 'dirname/*/*/*/* ',' dirname/*/*/*/*/* '. – Chris

+1

@Chris 'dirname /' sẽ hoạt động. Bạn có nghĩa là một repo '--bare'? – Simon

+0

Cảm ơn bạn @Simon, vì vậy nó phải là cái gì khác. Tôi không có nghĩa là -. Tôi chạy 'git init' rồi' git add --all .' (có hoặc không có --all) trong thư mục đầy đủ các tệp nguồn và '.gitignore' và nó bao gồm mọi thư mục con không trống trong thư mục có tên của tôi. Tôi đang sử dụng 1.9.4.msysgit.1 Giải quyết nó cho bây giờ bằng cách loại bỏ các thư mục sau đó lại thêm chúng sau khi lập chỉ mục, nghĩ rằng tôi đã hiểu lầm các tài liệu hoặc cú pháp. – Chris

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