GitFlow ile trunk-based development arasındaki fark nedir?

Cevap

GitFlow

Uzun ömürlü main ve develop dalları ile feature/*, release/*, hotfix/* dalları kullanır.

  • Feature dalları develop'a birleşir; sürüm zamanı release dalı açılır, test edilip main'e alınır ve etiketlenir.
  • Uygun olduğu yer: planlı sürümler, aynı anda birden fazla sürümü destekleme (masaüstü yazılım, mobil uygulama, kütüphane).
  • Dezavantaj: uzun yaşayan dallar büyük merge conflict'lere ve geç entegrasyona yol açar.

Trunk-based development

Herkes küçük değişikliklerle sık sık (günde en az bir kez) main'e entegre olur. Dallar varsa da çok kısa ömürlüdür (saatler, en fazla 1–2 gün).

  • Bitmemiş özellikler feature flag arkasında gizlenir.
  • Güçlü otomatik test ve CI şarttır; main her zaman deploy edilebilir olmalıdır.
  • Uygun olduğu yer: sürekli deploy (CD) yapan web servisleri.
GitFlowTrunk-based
Dal ömrüUzunÇok kısa
Entegrasyon sıklığıSeyrekSürekli
SürümPlanlı, release dalı ileSürekli, main'den
GereksinimSüreç disipliniGüçlü CI, feature flag

Arada popüler bir seçenek GitHub Flow'dur: main + kısa ömürlü feature dalı + pull request + merge sonrası deploy.

  1. git merge ile git rebase arasındaki fark nedir?OrtaGitFull Stack
  2. git reset ile git revert arasındaki fark nedir?OrtaGitFull Stack
  3. İyi bir code review nasıl yapılır? .gitignore'a neler eklenmelidir?KolayGitFull Stack
  4. Interactive rebase ile commit'leri nasıl düzenler ve squash edersiniz?ZorGitFull Stack
  5. git cherry-pick ve git stash ne işe yarar? Hangi durumlarda kullanılır?OrtaGitFull Stack
  6. Merge conflict nedir ve nasıl çözülür?KolayGitFull Stack

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle