Not: Bu 2009'dan beri ve o zaman iyi olabilirdi ama şimdi daha iyi seçenekler var.
Bunu kullanıyoruz. Adı 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
Sadece uygun bir bin dizinine (/ usr / local / bin) koyun. Windows'da çalışıyorsanız, sözdizimini değiştirmeniz gerekebilir :)
Güncelleme:
Orijinal yazarın tüm alt modüllerin tüm HEAD'lerini çekme hakkındaki yorumuna yanıt olarak - bu iyi bir soru.
Bunun git
dahili olarak bir komutu olmadığından eminim . Bunu yapmak için, bir alt modül için HEAD'in gerçekte ne olduğunu tanımlamanız gerekir. Bu master
en güncel şube, vb demek kadar basit olabilir ...
Bunu takiben, aşağıdakileri yapan basit bir komut dosyası oluşturun:
git submodule status
"değiştirilmiş" depoları kontrol edin . Çıktı çizgilerinin ilk karakteri bunu gösterir. Bir alt repo değiştirilirse, devam etmek istemeyebilirsiniz.
- listelenen her repo için, dizinine cd ve çalıştırın
git checkout master && git pull
. Hataları kontrol edin.
- Sonunda, alt modüllerin mevcut durumunu belirtmek için kullanıcıya bir ekran yazdırmanızı öneririm - belki de hepsini eklemelerini ve taahhüt etmelerini ister misiniz?
Bu stilin git submodüllerinin tasarlandığı şey olmadığını belirtmek isterim. Genellikle, "LibraryX" "2.32" sürümünde olduğunu söylemek istiyorum ve ben "yükseltme" söyleyene kadar bu şekilde kalacaktır.
Bu, bir anlamda, açıklanan komut dosyasıyla ne yaptığınızı, ancak daha otomatik olarak. Bakım gerekli!
Güncelleme 2:
Bir Windows platformundaysanız, bu alanlarda çok yetenekli olduğu için komut dosyasını uygulamak için Python kullanmaya bakmak isteyebilirsiniz. Eğer unix / linux kullanıyorsanız, o zaman sadece bir bash betiği öneririm.
Herhangi bir açıklamaya mı ihtiyacınız var? Sadece bir yorum gönderin.