Theo như tôi biết, một submodule chỉ có một url, được tham chiếu trong:
$ 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.
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
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
@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