2015-10-05 19 views
6

Tôi chỉ muốn cam kết các tệp có phần mở rộng là .fmb, .fmx.pll, nhưng tôi không thể định cấu hình tệp .gitignore để đạt được điều này.gitignore - Bỏ qua tất cả các loại tệp trừ các loại được chỉ định

Tôi đã thử như sau:

!.fmb 
!.fmx 
!.pll 

và cũng với:

!*.fmb 
!*.fmx 
!*.pll 

nhưng nó không hoạt động.

+1

Xem [answer] này (http://stackoverflow.com/questions/1274057/making-git-forget-about-a-file-that-was-tracked-but-is-now-in-gitignore) để đảm bảo bạn xóa các tệp không được theo dõi khỏi bộ nhớ cache – Ajay

+0

Tôi chưa thực hiện bất kỳ cam kết nào, nhưng tôi sẽ xem xét tương lai, cảm ơn bạn. – Julen

Trả lời

5

Cố gắng này trong gitignore bạn File-

* !*.fmb !*.fmx !*.pll

Bạn sẽ muốn đầu tiên bỏ qua tất cả mọi thứ và các tập tin sau đó danh sách trắng.

+0

Cảm ơn rất nhiều, nó hoạt động như một sự quyến rũ. – Julen

4

Nguyên tắc duy nhất cần nhớ khi giao dịch với gitignore quy tắc là:

It is not possible to re-include a file if a parent directory of that file is excluded (*)
(*: trừ khi điều kiện nhất định được đáp ứng trong git 2.?+, xem dưới đây)

Từ ' * 'cũng sẽ bỏ qua các thư mục, mọi quy tắc loại trừ tệp sẽ không hoạt động.

Hãy thử:

* 
!*/ 
!*.fmb 
!*.fmx 
!*.pll 

Điều đó sẽ đúng un-bỏ qua các thư mục (!*/), và cho phép các quy tắc loại trừ tiếp theo để làm việc trên các tập tin.


Lưu ý rằng với git 2.9.x/2.10 (giữa năm 2016?), Nó có thể là có thể để lại bao gồm một tập tin nếu một thư mục cha của tập tin đó sẽ bị loại trừ if there is no wildcard in the path re-included.

Nguyễn Thái Ngọc Duy (pclouds) đang cố gắng để thêm tính năng này:

Tuy nhiên, kể từ khi một trong những điều kiện để tái hòa nhập là:

Phần thư mục trong tái bao gồm quy tắc đó phải theo nghĩa đen (tức là không có ký tự đại diện)

Đó sẽ chưa làm việc ở đây.

+0

Giải pháp của bạn cũng hoạt động, cảm ơn. – Julen

+1

@nathan giải pháp bạn đã chọn sai và sẽ không hoạt động khi các tệp đó nằm trong thư mục con. Xin đừng đánh lừa người dùng git khác. – VonC

+1

@nathan Tôi chấp nhận, câu trả lời này là câu trả lời đúng, không phải câu trả lời khác. Làm ơn chấp nhận nó. –

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