Tôi đã tìm một lúc và không tìm thấy câu trả lời (có lẽ tôi không biết phải nhìn gì).Nhiều repos với một submodule đơn
Chúng tôi đã có một thư viện chính là một kho lưu trữ của nó tự (chúng ta hãy gọi nó Lib) nó chứa hầu hết các mô-đun và submodules của chúng tôi. Giả sử nó có kích thước 2GB ...
Bây giờ chúng tôi có nhiều dự án như: ProjA, ProjB, ProjC, mỗi dự án sử dụng Lib làm mô đun con.
ProjA
- Lib (chi nhánh: thạc sĩ, cam kết #: 1)
ProjB
- Lib (chi nhánh: khác, cam kết #: 2)
ProjA
- Lib (chi nhánh: thạc sĩ, cam kết #: 4)
Vì vậy, trong khi tôi có thể giữ tất cả các dự án tham khảo để sửa thư viện (aka submodule) phiên bản. Bây giờ tôi đã có 3 * 2GB = 6GB của mô-đun con SAME.
Có cách nào để tham chiếu đến một mô-đun con duy nhất trong khi vẫn duy trì các tệp/phiên bản chính xác được tham chiếu không?
Ví dụ:
ProjA
Lib/base_lib.h (v1.0)
Lib/file_only_in_this_commit
ProjB
- Lib/base_l ib.h (v1.0)
ProjC
- Lib/base_lib.h (v1.1)
Cảm ơn!
Không phải là tôi biết. Mỗi kho lưu trữ, bạn chỉ có thể có một tham chiếu đến một SHA trong một mô-đun con, do đó lý do bạn thêm nó 3 lần. Tôi đoán bạn có thiết lập này vì 'ProjA',' ProjB' và 'ProjC' đều liên quan và tương tác với nhau? Nếu không, đây có thể là 3 kho khác nhau. Hoặc bạn có thể có 3 nhánh trong một kho lưu trữ, trong trường hợp này bạn có thể có các tham chiếu submodule khác nhau trên mỗi nhánh chỉ với một phiên bản của submodule – houtanb
Nếu mục tiêu của bạn là tiết kiệm dung lượng, sau khi thanh toán ban đầu thay thế thư mục đối tượng một bản sao được liên kết cứng – basin
@basin Có cách nào để xác định các liên kết cứng như vậy trong git không? Thực hiện đề xuất của bạn theo cách thủ công không thực sự giải quyết vấn đề và tôi cũng muốn tránh các tập lệnh nếu có thể. – Danra