Menu
Coddy logo textTech

Git Submodule

Son güncelleme

Bir submodule, bir Git deposunu başka bir deponun içine belirli bir commit'e sabitlenmiş şekilde gömer. Üst repo, hangi submodule commit'ine bağlı olduğunu kaydeder, böylece herkes aynı sürümü alır. Kendi deposunda yaşayan paylaşılan bir kütüphaneyi veya bileşeni kodunu kopyalamadan dahil etmenin yoludur.

Bunları terminal playground'da deneyin - tarayıcınızda gerçek bir shell, kurulacak hiçbir şey yok.

git submodule, başka bir depoyu tam olarak tek bir commite sabitlenmiş şekilde deponun içine gömer.

Söz dizimi

CommandWhat it does
git submodule add <url> libs/xBir repoyu libs/x konumunda submodule olarak ekle
git clone --recurse-submodules <url>Bir repoyu ve submodule'lerini klonla
git submodule update --init --recursiveDüz klonlamadan sonra submodule'leri başlat ve çek
git submodule update --remoteSubmodule'leri en son commit'lerine güncelle
git submodule statusHer submodule'ün commit'ini göster

Yaygın durumlar

GoalCommand
Submodule kullanan bir projeyi klonlagit clone --recurse-submodules <url>
Klonladıktan sonra submodule'leri çekgit submodule update --init --recursive
Bir submodule'ü en son sürümüne yükseltgit submodule update --remote

git submodule SSS

git submodule nedir?
Bir submodule, başka bir Git deposunun içine sabit bir commit'te yerleştirilmiş bir Git deposudur. Üst repo, submodule'ün dosyaları yerine tam olarak o commit'e bir işaretçi saklar, böylece işbirlikçiler aynı sürümü checkout eder. Kendi deposu ve geçmişi olan bir bağımlılığı veya paylaşılan bir bileşeni dahil etmek için kullanılır.
Submodule'lü bir depoyu nasıl klonlarım?
Üst repoyu ve tüm submodule'lerini tek adımda klonlamak için git clone --recurse-submodules <url> kullanın. O bayrak olmadan zaten klonladıysanız, submodule klasörlerini doldurmak için sonrasında git submodule update --init --recursive çalıştırın.
Bir submodule'ü en son commit'e nasıl güncellerim?
Her submodule'ün izlenen dalını çeken ve onu en son commit'e taşıyan git submodule update --remote komutunu çalıştırın. Ardından değişikliği üst repoda commit'leyin, çünkü üst repo hangi submodule commit'ine işaret ettiğini kaydeder - o işaretçiyi commit'leyene kadar güncelleme kaydedilmez.
Klonladıktan sonra submodule klasörüm neden boş?
Çünkü --recurse-submodules olmadan klonladınız, bu yüzden Git klasörleri oluşturdu ama içeriklerini çekmedi. Her submodule'ü başlatan ve indiren git submodule update --init --recursive ile düzeltin.
Bunu çevrimiçi olarak alıştırma yapabilir miyim?
Evet. Tarayıcınızda gerçek bir shell'de git submodule çalıştırmak için terminal playground'u açın - kurulacak hiçbir şey yok. Coddy'nin ücretsiz etkileşimli Git kursu da depo kurulumunu adım adım kapsar.
Coddy programming languages illustration

Coddy ile Git öğren

BAŞLA