2012-04-07 29 views
19

Tôi nghĩ rằng tôi đã có tất cả làm việc với dự án mới này và nghĩ rằng git submodules là cách để phát triển và triển khai ứng dụng của tôi.git submodule không kéo tập tin trong submodules

Thiết lập repo git của tôi (Drupal) và khởi tạo nó bằng thẻ 7.12 của Drupal. Làm nhánh của riêng tôi. Sau đó, thêm các mô-đun cần thiết trong các trang/tất cả/mô-đun/đóng góp với git submodule add --branch 7.x git: // đường dẫn/đến/drupal/trang web mô-đun/all/modules/contrib/module

và sau đó tôi nghĩ, bằng cách đẩy repo của tôi đến github, tôi sẽ có thể đơn giản kéo nó và sau đó nó sẽ kéo tất cả các submodules vào con đường triển khai. Tuy nhiên, tất cả các module của tôi không kéo, ngay cả khi tôi làm: git submodule foreach git pull hoặc git submodule init tiếp theo git cập nhật submodule

Hóa ra, tôi đã sai. Tôi có cần phải làm lại mọi thứ theo cách khác không? Nếu có, xin vui lòng cho tôi biết làm thế nào, nếu không, tuyệt vời, xin vui lòng cho tôi biết.

Trả lời

39

Bạn đã chia nhỏ repo Drupal? Liệu nó đã có các mô-đun phụ được thêm vào trong .gitmodules? Nếu vậy, bạn chỉ cần sao chép chi nhánh của họ và thực hiện

git submodule init 
git submodule update 

Bạn không cần phải thêm lại mô-đun phụ của riêng mình vào repo.

Bây giờ nếu bạn muốn thêm các mô-đun con bổ sung, bạn phải thực hiện git submodule init; git submodule update mỗi khi bạn sao chép bản ghi nhớ. Nó sẽ không tự động nhận các submodules.

+0

Cảm ơn. Tôi đã trở lại với sự đơn giản và chỉ sử dụng một ngã ba git của dự án drupal. Tôi sẽ không thay đổi các tập tin lõi drupal vì vậy ngay cả sáp nhập trong những thay đổi từ lõi drupal không làm hại dự án của tôi. – geekdenz

+4

Chạy "git submodule init" và "git submodule update" đã thực hiện thủ thuật cho tôi. Tôi không biết rằng git không tự động kéo submodules khi bạn sao chép repo. – michaelday

+0

@michaelday Vì 'submodule' không thuộc về dự án chính. Nếu bạn muốn kéo submodules, sử dụng 'git clone --recursive ' thay vào đó khi bạn sao chép repo. – ahui

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