Tôi cần một cái gì đó giống như mô-đun con, nhưng tồn tại bên ngoài kho lưu trữ chính dưới dạng phụ thuộc.Làm cách nào để thêm kho lưu trữ git làm phụ thuộc chia sẻ của một kho lưu trữ git khác?
Dưới đây là các vấn đề:
Tôi đang cố gắng sử dụng Git (theo một cách vụng về REALLY) để quản lý các file thiết kế cho một công cụ CAD (Cadsoft Eagle), và tôi có một thời gian khó khăn để tìm nếu có một cách để sử dụng các mô đun con git để quản lý sự phụ thuộc của từng dự án khi thư viện được chia sẻ của công cụ CAD.
Tôi đang sử dụng một cấu trúc thư mục như thế này:
~/eagle/ <-- Main library used by multiple projects
.git/
<library files>
~/projects/ <-- Projects folder
Proj0/
.git/
<design files>
Proj1/
.git/
<design files>
Trong trường hợp này, nó không có ý nghĩa để thêm kho eagle.git như một submodule git cho từng dự án.
Tuy nhiên, tôi vẫn cần một cách để chụp nhanh trạng thái hiện tại của kho lưu trữ "eagle.git" để thư viện được cập nhật trong tương lai, nó có thể được cuộn lại để truy cập vào phiên bản cụ thể của các tệp thư viện đã được sử dụng khi Proj [x] được cam kết.
Lý tưởng nhất, tôi muốn một cái gì đó như sau:
~/eagle/ <-- Main library used by multiple projects
.git/
<library files>
~/projects/ <-- Projects folder
Proj0/
.git/
<design files>
**eagle** <-- something that acts like a submodule
but which actually points to ~/eagle/
Proj1/
.git/
<design files>
**eagle** <-- something that acts like a submodule
but which actually points to ~/eagle/
Tôi muốn để có thể:
cd ~/projects/Proj0
git submodule update
và có ~/đại bàng/thư mục tự động quay trở lại để bản sửa đổi đã được kiểm tra thành Proj0.
Bất kỳ ai biết gì về Git có thể cho phép loại hành vi này không?
Bạn có thể làm rõ lý do tại sao mô-đun con sẽ không hoạt động cho bạn ở đây? Nghe có vẻ như tôi như các mô-đun con chính là những gì bạn cần. –
Đối với công cụ CAD (Eagle) để "xem" một thư viện, nó phải được thêm vào các thiết lập đường dẫn của Eagle. Nếu tôi thêm repo thư viện "eagle" làm submodule cho mỗi dự án, tôi sẽ phải chắp thêm thủ công đường dẫn thư viện con của mỗi dự án, nó sẽ gây ra các bản sao của thư viện "eagle" để hiển thị trong Eagle's quản lý thư viện. Tìm ra những gì và quản lý những bản sao riêng biệt trong công cụ CAD sẽ là một cơn ác mộng. Ngoài ra, thư viện có thể là đơn đặt hàng có độ lớn lớn hơn các tệp dự án, do đó, có vẻ như thật lãng phí khi có [x] bản sao của nó nằm xung quanh trên đĩa. – cdwilson
Một cách hữu ích để nghĩ về điều này là thông qua sự tương tự. Cho phép nói Eagle CAD công cụ là một nhà máy có thể làm cho một widget tại một thời điểm. Cho phép nói rằng mỗi dự án [x] .git repo được đại diện bởi một kế hoạch chi tiết sản xuất [x] cho một số widget [x] nhà máy sản xuất. Các repo eagle.git được đại diện bởi các thiết lập nhà máy (các máy móc, công nhân, nguyên liệu) cần thiết để làm cho rằng phụ tùng [x]. – cdwilson