Monorepo nedir?
- Git kursu
- Uzman
- Ders 13/32
- 4 dk
Monorepo yaklaşımının tek depo modelini öğrenirsin.
Monorepo nedir?
Monorepo, birden fazla proje veya uygulamanın tek bir Git deposunda tutulduğu geliştirme yaklaşımıdır. Örneğin bir şirketin web uygulaması, mobil uygulaması ve ortak kütüphaneleri aynı depoda bulunabilir.
company/
├── frontend/
├── backend/
├── mobile/
└── shared/Böylece projeler ortak dosyaları ve değişiklikleri tek bir depo üzerinden yönetebilir.
Tek depo, birden fazla proje
Monorepo kullanırken her projenin kendi dizini bulunur ancak tüm projeler aynı Git geçmişini paylaşır. Bir commit, birden fazla projeyi ilgilendiren değişiklikleri birlikte içerebilir.
workspace/
├── api/
│ └── index.js
├── web/
│ └── app.js
└── packages/
└── utils.jsBu model ortak kodların paylaşılmasını ve projeler arası değişikliklerin birlikte incelenmesini kolaylaştırır. Ancak büyük depolarda klonlama ve bakım maliyeti artabilir.
Uygulama Monorepo dizinlerini oluştur
Bir monorepo için frontend, backend ve shared dizinlerini oluştur. Ardından find komutuyla dizinleri listele.
Başlangıç kodu
# Proje dizinlerini oluştur
# Dizinleri listeleÖrnek çözüm
mkdir -p frontend backend shared
find . -maxdepth 1 -type d | sortBeklenen çıktı
. ./backend ./frontend ./shared
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir şirketin web, mobil ve sunucu projelerini tek Git deposunda tutması hangi yaklaşımı ifade eder?
- Multirepo
- Monorepo Doğru cevap
- Submodule
- Worktree
Açıklama: Monorepo yaklaşımında birden fazla proje aynı Git deposunun farklı dizinlerinde tutulabilir.
2 Ortak depo yapısını tamamla
workspace/
├── frontend/
├── backend/
└── ____/
workspace/
├── frontend/
├── backend/
└── shared/
Açıklama: Monorepo içinde frontend, backend ve shared gibi farklı proje dizinleri bulunabilir.
3 Monorepo bileşenleri
| Kavram | Anlamı |
|---|---|
Monorepo |
Birden fazla projeyi tek depoda tutar |
Single repo |
Tek Git deposu |
Multi-project |
Birden fazla proje |
Ortak kod |
Projeler arasında paylaşılır |