Lưu ý: Đây là từ năm 2009 và có thể đã tốt sau đó nhưng có những lựa chọn tốt hơn bây giờ.
Chúng tôi sử dụng này. Nó được gọi là git-pup
:
#!/bin/bash
# Exists to fully update the git repo that you are sitting in...
git pull && git submodule init && git submodule update && git submodule status
Chỉ cần đặt nó trong một thư mục bin thích hợp (/ usr / local / bin). Nếu trên Windows, bạn có thể cần sửa đổi cú pháp để làm cho nó hoạt động :)
Cập nhật:
Đáp lại bình luận của tác giả ban đầu về việc kéo tất cả các Đầu của tất cả các mô hình con - đó là một câu hỏi hay.
Tôi khá chắc chắn rằng git
không có lệnh cho nội bộ này. Để làm như vậy, bạn sẽ cần xác định CHÍNH thực sự là gì cho một mô hình con. Điều đó có thể đơn giản như nói master
là chi nhánh cập nhật nhất, v.v ...
Theo đó, tạo một tập lệnh đơn giản thực hiện như sau:
- kiểm tra
git submodule status
kho "sửa đổi". Ký tự đầu tiên của các dòng đầu ra chỉ ra điều này. Nếu một repo phụ được sửa đổi, bạn có thể KHÔNG muốn tiếp tục.
- cho mỗi repo được liệt kê, cd vào thư mục của nó và chạy
git checkout master && git pull
. Kiểm tra lỗi.
- Cuối cùng, tôi khuyên bạn nên in một màn hình cho người dùng để chỉ ra trạng thái hiện tại của các mô hình con - có lẽ nhắc họ thêm tất cả và cam kết?
Tôi muốn đề cập rằng phong cách này không thực sự là những gì các mô hình con git được thiết kế cho. Thông thường, bạn muốn nói "LibraryX" ở phiên bản "2.32" và sẽ giữ nguyên như vậy cho đến khi tôi bảo nó "nâng cấp".
Đó là, theo một nghĩa nào đó, những gì bạn đang làm với kịch bản được mô tả, nhưng chỉ tự động hơn. Chăm sóc là cần thiết!
Cập nhật 2:
Nếu bạn đang ở trên một nền tảng windows, bạn có thể muốn xem xét việc sử dụng Python để triển khai tập lệnh vì nó rất có khả năng trong các lĩnh vực này. Nếu bạn đang sử dụng unix / linux, thì tôi khuyên bạn chỉ nên sử dụng tập lệnh bash.
Cần bất kỳ làm rõ? Chỉ cần đăng một bình luận.