SORU
30 Aralık 2009, ÇARŞAMBA


git submodule güncelleme

Aşağıdaki ne anlama geldiğini anlamış değilim (git submodule update docs):

...--rebase sürece alt modüller KAFASI kopmuş olabilir, veya --merge belirtilen...

Nasıl--rebase/--merge Bu bir şey değiştirir mi?

Ana kullanım davamı diğer repo içine alt modüller) embed edeceğim merkezi repo, bir grup var. Bu merkez repo geliştirmek mümkün olacak, ya da gömme onların repo (submodule ile kullandıklarınızla) içinden doğrudan orijinal yerde, ya da istiyorum.

Düzenli repo Şubesi/değişiklikler oluşturmak ve itme tıpkı benim gibi Çek kullanabilir miyim bu alt modüller içinden, ya da dikkatli olacak şeyler var mı?
nasıl ki önceden submodule başvurulan commit demek (etiketli) 1.0 1.1 (olsa bile başın orijinal repo zaten 2,0), veya pick dalları taahhüt kullanılır?

CEVAP
30 Aralık 2009, ÇARŞAMBA


Bu 7* *git submodule bir güncelleme sonucu güzel özetler

git submodule update, çalıştırdığınızda, bir şube içinde proje, ancak belirli bir sürümünü denetler. Bu müstakil bir kafa — KAFAYA dosyayı doğrudan işlemek bir işaret anlamı olan sembolik bir başvuru için çağrılmaz.
Bu sorun genellikle kolay değişiklikleri kaybetmek çünkü kafası kopuk bir ortamda çalışmak istemiyorum.
Eğer bir başlangıç submodule update, commit o submodule dizin oluşturma olmadan bir şube için iş, ve sonra koş git submodule güncelleme yine superproject olmadan yapılıyor bu arada, Git üzerine değişikliklerinizi sana söylüyorum. Teknik olarak işini kaybetmek istemiyorum, ama biraz zor almak için olacak bir dalını işaret yaşamazsınız.


Not Mart 2013:

"git submodule tracking latest", Bir submodule şimdi (git1.belirtildiği gibi 8.2) bir şube izleyebilirsiniz.
Bu cevap geri kalan detayları klasik submodule özelliği (sabit tamamlama için başvuru).


Bu sorunu önlemek için git checkout-b işe denk submodule bir dizin çalışırken bir şube oluşturmak. Bu submodule ikinci kez güncelleme yaptığınızda, hala iş döner, ama en azından geri almak için bir işaretçi var.

Onları alt modüller ile dalları geçiş de zor olabilir. Yeni bir şube oluşturmak, bir submodule oraya ekleyin ve sonra bir dala geçiş submodule olmadan, hala izlenmeyen bir dizin olarak submodule dizin:


Yani, sorularınızı yanıtlamak için:

şube oluşturma/değişiklik ve/düzenli repo içinde tıpkı benim gibi çekme, itme, ya da orada şeyler hakkında dikkatli olun.

Bir şube oluşturmak ve değişiklikleri zorlayabilir.

UYARI (Git Submodule Tutorial): her Zaman (push) (itme) değişikliği başvuruları bu superproject yayınlamadan önce submodule değişim yayınla. Sen submodule değişikliği yayınlamak için unutursanız, Diğerleri depoyu klonlamak mümkün olmayacaktır.

nasıl submodule önceden de değinmiştim demek (etiketli) 1.1 1.0 taahhüt özgün repo Başkanı zaten 2.0 de olsa)

Sayfa "Understanding Submodules" yardımcı olabilir

Git alt modüller iki hareketli parça kullanılarak uygulanır:

  • .gitmodules dosya ve
  • ağaç, özel bir tür nesne.

Bu arada projenizde belirli bir yere Ödünç alınmış olan özel bir depo belirli bir revizyon üçgenlere.


git submodule page

ana proje içinde submodule içeriğini değiştiremezsiniz

100% doğru: bir submodule değiştir iptalleri. bir bakın sadece yapamazsınız

Bu ana proje içinde: bir submodule değişiklik yaptığın zaman, neden olduğunu

  • taahhüt ve itmek gerekiriçindesubmodule (Yukarı akış modülü), ve
  • sonra ana proje ve re-taahhüt ana proje yeni submodule başvurmak için oluşturduğunuz ve itti işlemek için () olur

Bir submodule sana sahip olmasını sağlarcomponent-based approachana proje sadece belirli başvuruyor geliştirme, diğer bileşenleri kaydeder (burada "diğer Gıt depoları olarak ilan alt modüller").

Bir submodule bir marker (commit) ana proje geliştirme döngüsüne bağlı olmayan bir Git deposu: "Git repo) geliştikçe, birbirinden bağımsız olarak diğer. (
Ana projeye ihtiyacı var suç ne olursa olsun diğer repo seçim yapmak için.

Ancak, istiyorumkolaylıkbu alt modüllerin bir doğrudan ana projeden değiştir, Git sen, seni temin yapmanızı sağlarilkorijinal Gıt onun repo o submodule değişiklikleri yayımlamak vesonraana proje atıfta işlemekyenisürüm dedi submodule.

Ama ana fikir olarak kalır: belirli bileşenleri başvuran:

  • kendi ömrü var
  • etiketleri kendi belirledik
  • kendi gelişim var

Özel listesine ana proje olarak tanımlar başvuruyorsunuz tamamlarconfiguration(bu nedirYapılandırmaYönetimi, Version Control System daha fazla) englobing

Bir bileşen gerçekten geliştirilebiliraynı zamandasizin ana proje (çünkü herhangi bir değişiklik ana proje dahil değiştirme alt-dizin ve tersi), o zaman bir "submodule" artık, ama bir ağacı birleştirme (ayrıca sunulan soru Transferring legacy code base from cvs to distributed repository), bağlama tarihinin iki Gıt repo birlikte.

Bu Git alt modüllerin gerçek doğasını anlamak yardımcı olur mu?

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • chickenby

    chickenby

    2 HAZİRAN 2008
  • ColdfusTion

    ColdfusTion

    3 Aralık 2007
  • laptopmag

    laptopmag

    25 Ocak 2008