2013-02-13 21 views
16

Tôi có một dự án sử dụng một số thư viện của bên thứ ba. Cấu trúc thư mục giống như sau:Git subtree: Chỉ sử dụng subrepository thay vì toàn bộ kho lưu trữ

MY_COOL_PROJECT 
    3rdParty 
     LIB_1 
     LIB_2 
    Source 
     MY_PROJECT 

Thư viện được đặt trong các kho lưu trữ riêng biệt. Vì vậy, nếu tôi muốn sử dụng một kho git cho các thư viện 3rd Party tôi có thể làm:

git subtree add --prefix 3rdParty/LIB_1 --squash http://My3rdPartyLibs.com/lib1.git master 

Tuy nhiên, bên trong kho lib1.git chỉ có một thư mục bin tôi cần. Nó cũng chứa các thư mục như tài liệu, ví dụ, vv Làm thế nào tôi chỉ có thể "kết nối" kho lưu trữ của tôi với thư mục lib1/bin thay vì toàn bộ kho lưu trữ? Điều đó thậm chí có thể?

+1

bạn đã tìm thấy một giải pháp cho cây con thưa thớt? (câu trả lời hiện tại dường như không giải quyết nó đầy đủ) – inger

Trả lời

7

Thông thường, một repo git được thực hiện để được sao chép hoàn toàn/nạp.

Bạn thể đi cho một sparse checkout (Git1.7 +), nhưng chỉ khi bạn không có ý định làm bất kỳ sửa đổi và đẩy những người trở lại. Xem this example:

$ git init 
Initialized empty Git repository in /tmp/si-sandbox/.git/ 
(master) $ git config core.sparsecheckout true 
(master) $ echo message-store/ >> .git/info/sparse-checkout 
(master) $ git remote add origin git://github.com/iwein/Spring-Integration-Sandbox.git 
(master) $ git pull origin master 

Các OP user2070238reports:

này đã làm việc với một vài thay đổi.
Bởi vì, tôi sử dụng submodule tôi đã phải sử dụng

echo MY_FOLDER/* >> .git/info/modules/MY_MODULE/sparse-checkout 

Và đối với một số lý do phần MY_FOLDER/ đã không làm việc mà không *

+1

Cảm ơn, điều này đã làm việc với một vài thay đổi. Bởi vì, tôi sử dụng submodule tôi đã phải sử dụng 'MY_FOLDER echo/* >> .git/info/modules/MY_MODULE/thưa thớt-checkout' Và vì lý do nào MY_FOLDER/phần không hoạt động mà không cần * – user2070238

+0

@ user2070238 Xuất sắc. Tôi đã bao gồm bình luận của bạn trong câu trả lời cho khả năng hiển thị nhiều hơn. – VonC

+1

Câu hỏi ban đầu là về "git subtree" - câu trả lời này bao gồm thanh toán thưa thớt thay vì ... ở hầu hết một nửa giải pháp? (có thể thậm chí không) – inger

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