CodeBlanks Logo Icon CodeBlanks

Submodule nedir?

Submodule ile başka depo gömmeyi öğrenirsin.

Submodule nedir?

Git submodule, bir Git deposunun başka bir deponun içinde ayrı bir depo olarak kullanılmasını sağlar. Ana depo, alt deponun tüm dosya geçmişini doğrudan kendi geçmişine katmaz; bunun yerine alt deponun belirli bir commit referansını saklar. Böylece ortak bir kütüphaneyi veya bağımsız bir projeyi başka bir projede kullanabilirsin.

project/
├── app/
└── libraries/
    └── shared-ui/

Alt modül kendi Git geçmişine ve çalışma dizinine sahiptir. Ana depodan bağımsız olarak güncellenebilir.

Ana depo ve alt depo ilişkisi

Submodule içeren ana depo, alt modülün hangi commit üzerinde olması gerektiğini kaydeder. Alt modülün kendi dosyaları ve commit geçmişi ayrı kalır. Alt depoda yeni bir commit oluşturduğunda ana depoda da alt modül referansındaki değişikliği kaydetmen gerekir.

git status
# modified: libraries/shared-ui (new commits)

Bu yapı, bağımlı projelerin belirli sürümlerini sabit tutmana yardımcı olur.

Uygulama Alt modülün bulunduğu dizini incele

libraries/shared-ui alt modülünün kendi deposunda çalıştığını doğrulamak için bu dizine geç ve Git depo kökünü göster.

Başlangıç kodu

terminal
# Alt modül dizinine geç

# Git depo kökünü göster

Örnek çözüm

terminal
cd libraries/shared-ui
git rev-parse --show-toplevel

Beklenen çıktı

Changed directory to libraries/shared-ui.
Repository root displayed.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir projede başka bir Git deposunu kendi geçmişinden ayrı tutarak kullanmak istiyorsun. Hangi Git özelliği bu ihtiyacı karşılar?

  • Git reflog
  • Git tag
  • Git submodule Doğru cevap
  • Git stash

Açıklama: Submodule, başka bir Git deposunu ana proje içinde bağımsız geçmişiyle kullanmanı sağlar.

2 Alt modül referansını tanımla

Soru
Ana depo, alt modülün belirli bir ____ bilgisini saklar.
Cevap
Ana depo, alt modülün belirli bir commit bilgisini saklar.

Açıklama: Ana depo, alt modülün hangi commit üzerinde olması gerektiğini kaydeder.

3 Submodule yapısının parçaları

Kavram Anlamı
Ana depo Alt modül referansını saklar
Alt depo Kendi commit geçmişine sahiptir
Commit referansı Alt modülün sürümünü belirtir
Alt modül dizini Alt deponun dosyalarını barındırır

İleri seviye bölümündeki tüm dersler