2011-07-08 27 views
25

Tôi thêm một mô-đun con từ URL git @ ..., để có thể phát triển trong đó. Bây giờ tôi muốn triển khai ứng dụng và thay thế URL bằng một git: // ... một, do đó, nó không cần xác thực đến repo của mô-đun con từ Capistrano. Đang chỉnh sửa URL trong .gitmodules hoàn toàn đủ để thực hiện điều này?thay thế giao thức submodule git từ git sang http

Trả lời

51

Chỉnh sửa tệp .gitmodules (sau đó cam kết và đẩy tệp) sẽ đủ cho bất kỳ bản sao mới.

Ngoài ra, khi một submodule được khởi tạo (ví dụ git submodule init …, git submodule update --init …, hoặc git clone --recursive …, vv) URL của nó được sao chép từ các tập tin .gitmodules đến file .git/config của kho.

Vì vậy, nếu bạn có bất kỳ hiện “nhái triển khai” (những người bây giờ bạn muốn truy cập vào các môđun con qua git://… URL), bạn cũng sẽ phải cập nhật các URL trong .git/config của họ. Bạn có thể sử dụng git submodule sync để tự động sao chép URL mô-đun con từ tệp .gitmodules hiện tại vào tệp .git/config của bạn (nghĩa là khi bạn đã kéo cam kết cập nhật tệp .gitmodules).

URL phụ mô-đun trong .git/config thường không được tự động cập nhật vì có trường hợp bạn chỉ muốn ghi đè URL trong một số trường hợp nhất định. Cụ thể, bạn thường muốn sử dụng các URL [email protected] trong kho lưu trữ .git/config của kho lưu trữ của mình (để bạn có thể đẩy qua SSH), nhưng đặt git://… URL trong .gitmodules (để công chúng không cần phải thực hiện xác thực dựa trên SSH).

+0

cảm ơn, đồng bộ hóa chính xác là những gì chúng tôi cần trong trường hợp này! – Alexy

+0

đồng bộ hóa submodule git đã thực hiện công việc! Cảm ơn! –

+0

Câu trả lời vô giá :) – emjay

0

Tôi gặp phải sự cố tương tự, và sau khi googling, tôi tình cờ gặp bài viết này: Relative URL for Git submodule. Tôi tìm thấy nó là một thực hành tốt để làm theo như là không cần phải tự thay đổi các tập tin .gitsubmodule không có vấn đề ai kiểm tra nó. Nó cũng có thể áp dụng cho trường hợp của bạn.

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