2010-01-06 16 views
5

Tôi đã tự hỏi liệu có thể có nhiều hơn một URL cho mỗi mô-đun con git hay không. Nó sẽ được quan tâm để có nhiều hơn một nguồn của nó nếu một trong số họ là xuống hoặc một người nào đó đằng sau một proxy chặn một trong số họ.Mô-đun phụ Git: Có thể có nhiều URL cho mỗi URL không?

Bạn đã từng gặp sự cố này chưa? Làm thế nào bạn sẽ giải quyết nó?

Trả lời

4

Theo như tôi biết, một submodule chỉ có một url, được tham chiếu trong:

  • .gitmodules
 
    $ cat .gitmodules 
    [submodule "a"] 
      path = a 
      url = /home/moses/subtut/public/a/.git 
    [submodule "b"] 
      path = b 
      url = /home/moses/subtut/public/b/.git 
  • và trong cấu hình của .git thư mục của submodule

Ý nghĩa nếu url đó bị hỏng, nó có thể phải được thay đổi ở hai vị trí đó, nhưng tôi chưa thử nghiệm quá trình đó.


comments tốt từ Gattster

git submodule sync. 

Theo docs:

Đồng bộ hóa từ xa cấu hình URL submodules' thiết lập với giá trị quy định tại .gitmodules.
Điều này hữu ích khi các URL môđun thay đổi ngược dòng và bạn cần phải cập nhật các kho lưu trữ cục bộ của bạn tương ứng.

  • "git submodule sync" đồng bộ hóa tất cả các môđun con
  • khi "git submodule sync -- A" đồng bộ hóa submodule "A" mà thôi.

Điều đó đang được nói, sửa đổi .gitmodule có thể được thực hiện tốt hơn trong sự cô lập (ví dụ: trong một chi nhánh) cho đến khi những url mới có thể được xác thực/xuất bản.

+0

Vấn đề thay đổi URL là khi tôi lưu trữ chính, các tệp .gitmodules cũng sẽ được cam kết và các URL đó có thể không hoạt động đối với mọi người sao chép kho lưu trữ chính. Tôi đã nghĩ đến việc làm việc tại một chi nhánh địa phương mà sự khác biệt duy nhất của chủ là các .gitmodules của nó có các URL khác nhau. Ugly, nhưng sẽ làm việc,: -/ – Silas

+1

Tôi nghĩ rằng bạn có thể chạy 'git submodule sync'. Theo tài liệu, nó thực hiện cài đặt cấu hình URL từ xa "Đồng bộ hóa submodules" thành giá trị được chỉ định trong .gitmodules. Điều này rất hữu ích khi submodule URL thay đổi ngược dòng và bạn cần cập nhật kho lưu trữ cục bộ của bạn cho phù hợp. " – Gattster

+0

@qris nhắc tôi về http://stackoverflow.com/questions/12078365/how-exactly-does-git-submodule-work/12078816#12078816: bản cập nhật phụ 'git cũng nguy hiểm. – VonC

1

Tôi không tin điều đó là có thể. Bạn có thể tự làm điều này bằng cách kiểm tra dự án của bạn, khởi tạo các mô-đun con của bạn, và sau đó cd vào một thư mục con và cập nhật git remote origin thành URL kho lưu trữ mới.

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