2012-03-05 37 views
7

Theo this thread, loại trừ trong Git's sparse-checkout feature được cho là sẽ được triển khai. Là nó?Kiểm tra thưa thớt Git với loại trừ

Giả sử rằng tôi có cơ cấu như sau:

papers/ 
papers/... 
presentations/ 
presentations/heavy_presentation 
presentations/... 

Bây giờ tôi muốn loại trừ presentations/heavy_presentation từ thanh toán, trong khi rời khỏi phần còn lại trong thanh toán. Tôi đã không quản lý để có được điều này chạy. Cú pháp đúng cho điều này là gì?

Trả lời

4

tôi dự kiến ​​sẽ có một cái gì đó giống như dưới đây để làm việc:

/* 
!presentations/heavy_presentation 

Nhưng nó không. Và tôi đã thử nhiều kết hợp khác. Tôi nghĩ rằng loại trừ không được thực hiện đúng cách và có những lỗi xung quanh nó (vẫn)

Cái gì như:

presentations/* 
!presentations/heavy_presentation 

làm việc mặc dù và bạn sẽ nhận được các phần trình bày thư mục mà không có thư mục heavy_presentation.

Vì vậy, giải pháp thay thế sẽ bao gồm mọi thứ khác một cách rõ ràng.

+0

Cảm ơn, đã xác nhận.Tôi đã chỉnh sửa bài đăng của bạn để thêm một ví dụ khác không hoạt động. – krlmlr

3

Tôi đã gặp vấn đề tương tự. Tôi cố định nó với một cái gì đó như:

!presentations/heavy_presentation 
presentations/* 

Làm thế nào tôi hiểu rằng nó hoạt động: Nó đọc quy tắc tập tin bằng cách quy tắc. Nếu một cái gì đó được bao gồm, nó bao gồm tất cả các đường dẫn có chứa từ đó, và nó không thay đổi trạng thái của nó nữa cho đến khi kết thúc thanh toán thưa thớt. Nếu bạn thêm quy tắc loại trừ trước khi bao gồm, theo ý kiến ​​của tôi, nó sẽ xóa các tệp đầu tiên và đánh dấu tất cả là đã bao gồm.

Tôi không hoàn toàn chắc chắn, đây là những gì tôi đã cho là dựa trên kinh nghiệm của tôi và đã làm việc cho tôi. Tôi hy vọng nó sẽ giúp ai đó.

3

Đáng buồn là không có điều nào ở trên phù hợp với tôi vì vậy tôi đã dành rất nhiều thời gian để thử kết hợp khác nhau của tệp sparse-checkout.

Trong trường hợp của tôi, tôi muốn bỏ qua các thư mục có cấu hình IntelliJ IDEA.

Dưới đây là những gì tôi đã làm:


Run git clone https://github.com/myaccount/myrepo.git --no-checkout

Run git config core.sparsecheckout true

Created .git\info\sparse-checkout với nội dung sau đây

!.idea/* 
!.idea_modules/* 
/* 

Run 'git checkout -' để có được tất cả các tệp.


điều quan trọng để làm cho nó làm việc là để thêm /* sau tên thư mục của.

Tôi có git 1.9

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