2010-09-09 34 views
9

Điều này có thể hiển nhiên và đã được hỏi nhiều lần theo nhiều cách khác nhau trước đây, nhưng tôi không thể tìm thấy câu trả lời sau khi tìm kiếm một thời gian.Tìm nạp/Kéo một phần Kho lưu trữ Rất Lớn?

Giả như sau:

  • tôi có, chẳng hạn, một đĩa 500GB vào cuối địa phương;
  • Tôi có kho lưu trữ từ xa 100 terabyte; do đó, chi phí nhân bản toàn bộ kho lưu trữ đơn giản là không khả thi;
  • thư mục làm việc được sử dụng để tạo kho lưu trữ từ xa bao gồm 1000 thư mục cấp cao nhất DIR001, DIR002, ... DIR00N mỗi thư mục chứa nhiều thư mục con chỉ với các thư mục con (Ex. DIR001/subdir1/fileA1 ... DIR001/subf1/fileAN và DIR001/subdir2/fileB1 ... DIR001/subdir2/fileBN, ...
  • Tôi KHÔNG rõ ràng gắn thẻ hoặc thư mục chi nhánh DIR001, DIR002, ... DIR00N hoặc bất kỳ thứ gì khác cho vấn đề đó
  • Tôi bắt đầu một nhãn hiệu mới kho git địa phương

Làm cách nào để kéo hoặc lấy hiệu quả c cuối cùng các phiên bản được bổ sung của DIR001/subdir2/fileB1 ... DIR001/subdir2/fileBN từ kho lưu trữ từ xa và không có gì khác?

chỉ là phiên bản cam kết cuối cùng của một tập tin duy nhất từ ​​DIR001/subdir2/fileB1 ... DIR001/subdir2/fileBN từ kho lưu trữ từ xa và không có gì khác?

Làm cách nào để kéo hoặc lấy phiên bản đã cam kết trước đây của tập hợp con các tệp đã nói và không có gì khác?

Có thể tìm nạp/kéo không phải là lệnh đúng cho việc này.

+0

Xin lỗi tôi không thể trả lời câu hỏi của bạn nhưng xin lưu ý rằng chữ ký và tagline được "mạnh mẽ khuyến khích" trên StackOverflow. Bạn có thể tìm thêm thông tin tại đây: http://meta.stackexchange.com/questions/5029/are-taglines-signatures-disallowed/5038#5038 –

+0

Lưu ý: với git-lfs (tháng 4 năm 2015), pull/fetch sẽ là hiệu quả hơn. Xem câu trả lời đã chỉnh sửa của tôi. – VonC

+0

Git 2.5 (Q2 2015) hỗ trợ một lần tìm nạp đơn! Tôi đã chỉnh sửa câu trả lời của tôi dưới đây, bây giờ tham khảo "[Kéo một cam kết cụ thể từ một kho git từ xa] (http://stackoverflow.com/a/30701724/6309)". – VonC

Trả lời

5

Câu trả lời cho "Partial cloning" có thể giúp bạn bắt đầu thử nghiệm với các bản sao nông.
Nhưng nó sẽ bị hạn chế:

  • đến độ sâu nhất định, và/hoặc chi nhánh nào đó,
  • nhưng không để các tập tin hoặc thư mục (bạn có thể nhận được một tập tin hoặc thư mục mặc dù kiểm tra thưa thớt, nhưng bạn nhất định vẫn phải nhận được đầy đủ repo đầu tiên!)
  • Ngay cả một cam kết nhất định.
    (Git 2.5 (Q2 2015) hỗ trợ một lần tìm nạp duy nhất! Xem "Pull a specific commit from a remote git repository").

Giải pháp thực tế là tách biệt repo từ xa thành các mô-đun phụ.
Xem What are Git limits hoặc Git style backup of binary files để minh họa loại tình huống này.


Cập nhật tháng 4 năm 2015:

Git Large File Storage (LFS) sẽ làm kéo/lấy hiệu quả hơn (bằng cách GitHub, tháng 4 năm 2015).

Dự án này là git-lfs (xem git-lfs.github.com) và thử nghiệm với máy chủ hỗ trợ nó: lfs-test-server:
Bạn có thể lưu trữ siêu dữ liệu chỉ trong repo git, và các tập tin lớn nơi khác.

https://cloud.githubusercontent.com/assets/1319791/7051226/c4570828-ddf4-11e4-87eb-8fc165e5ece4.gif

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