Git'te Develop Branch — nedir, amacı ve çalışma prensipleri

Yazar: IT Sectr Yayınlanma: 2026-05-09 Okuma süresi: 8 dk

Develop Branch, Git Flow'da bir sürüm hazırlamadan önce tamamlanmış tüm feature dallarının birleştirildiği ana entegrasyon dalıdır. Main'den farklı olarak develop, en yeni ancak henüz yayınlanmamış değişiklikleri içerir — burada ekip geliştiricilerinin günlük kod entegrasyonu gerçekleşir. Atlassian, 2024'e göre develop, Git Flow'da zorunlu bir daldır ve ekip için istikrarlı bir entegrasyon ortamı sağlar.

Önemli noktalar

  • Develop Branch, sürüm hazırlamadan önce tamamlanmış tüm özelliklerin toplandığı geliştirme dalıdır.
  • Feature dallarının kaynağı — tüm yeni özellikler en son develop commit'inden oluşturulur.
  • Entegrasyon testi, release dalı oluşturulmadan önce develop üzerinde yapılır.
  • Develop kararlılığı yüksek olmalıdır — kod burada kod incelemesi ve otomatik kontrollerden geçer.
  • Main'e birleştirme yalnızca release dalı aracılığıyla gerçekleşir, doğrudan develop'tan değil.

Git'te Develop Branch Nedir

Develop Branch (geliştirme dalı), Git Flow'da tüm geliştiricilerden kod entegrasyonu için merkezi merkez görevi gören uzun ömürlü bir daldır. Geliştirme tamamlandıktan ve kod incelemesinden sonra feature dalları burada birleştirilir.

develop'daki kod her zaman bir sürüm oluşturmaya hazır durumdadır, ancak henüz üretime dağıtılmamıştır. Bu, develop'daki tüm özelliklerin inceleme, test ve entegrasyon kontrollerinden geçtiği, ancak henüz sürüm döngülerini beklediği anlamına gelir.

Her kod sürümünün bir yayın olduğu main'in aksine, develop sürekli bir değişiklik akışı içerir. Feature dalları birleştirildikçe develop'da commit'ler görünür ve bu günde birkaç kez gerçekleşebilir.

Vincent Driessen, 2010'a göre develop, başarılı bir dallanma modelinin önemli bir öğesidir çünkü taslak çalışmayı sürüme hazır sürümlerden ayırır.

develop ve main dalı arasındaki farklar

develop ve main arasındaki farkları anlamak, doğru Git Flow iş akışı için kritik öneme sahiptir. Bu dallar farklı işlevlere hizmet eder ve farklı kararlılık gereksinimlerine sahiptir.

ÖzellikDevelopMain / Master
AmaçYeni özelliklerin entegrasyonuKararlı sürüm kodu
KararlılıkYüksek (testten sonra)Maksimum (üretim)
Commit sıklığıGünlük (feature birleştirme)Sürüm başına (1-4 haftada bir)
Dal kaynağıOndan feature oluşturulurOndan hotfix oluşturulur
BirleştirmePR aracılığıyla feature'danmerge aracılığıyla release'den

develop ve main olarak ayrılma, ekibin üretim sürümü kararlılığını riske atmadan sürekli olarak yeni kod entegre etmesine olanak tanır. Geliştiriciler, resmi sürümden önce bile PR onayından hemen sonra kodlarını develop'ta görebilirler.

Git Flow'da develop'ın rolü

Git Flow modelinde develop, feature dalları (değişiklik kaynağı) ve release dalları (sürüm hazırlığı) arasında merkezi bir konuma sahiptir. Bu hiyerarşiyi anlamak etkili dallanmanın temelidir.

  • Feature → Develop — tamamlanan her özellik, kod incelemesi ile Pull Request aracılığıyla develop'ta birleştirilir.
  • Develop → Release — bir sürüm için yeterli değişiklik biriktiğinde, develop'tan bir release dalı oluşturulur.
  • Release → Main + Develop — son hazırlıktan sonra release dalı, main (sürüm) ve develop'a (hata düzeltmeleri) birleştirilir.
  • Hotfix → Main + Develop — kritik düzeltmeler main'den oluşturulur ve her iki dala da birleştirilir.

Bu yapı, develop'ın her zaman tüm yeni özelliklerle birlikte en son kodu içermesini, main'in ise yalnızca doğrulanmış üretim kodunu içermesini sağlar. Bu, App Store ve Google Play'de uzun inceleme döngüleri olan mobil projeler için özellikle önemlidir.

Develop'ın diğer Git Flow dallarıyla ilişkisi

Develop, feature, release ve hotfix dalları arasında merkezi bağlantı görevi görür. Birleştirme yönlerini anlamak, çakışmaları ve commit kaybını önlemek için çok önemlidir.

develop'da kod kalitesi gereksinimleri

develop'daki kod kalitesi yüksek olmalıdır, ancak mutlak değildir. Her hatanın acil bir hotfix anlamına geldiği main'in aksine develop, sürümden önce düzeltilecek küçük kusurlara izin verir.

develop'ta birleştirmeden önce kod için minimum gereksinimler:

  • Derleme — kod hatasız derlenmelidir. develop'ta bozuk bir derleme tüm ekibin çalışmasını engeller.
  • Birim testleri — mevcut tüm testler geçmelidir. Yeni kod en az %70 oranında testlerle kapsanmalıdır.
  • Kod stili — kod, ekibin kabul ettiği biçimlendirme ve adlandırma standartlarına uygun olmalıdır.
  • Kullanımdan kaldırılmış API yok — yeni kodda kullanımdan kaldırılmış yöntemlerin kullanımına izin verilmez.

CI/CD hattındaki otomatik kontroller, develop'a her push'ta çalıştırılmalıdır. Derleme bozulursa, sorumlu geliştirici sorunu bir saat içinde düzeltmeli veya commit'ini geri almalıdır.

develop için CI/CD kontrolleri

develop için GitHub Actions kurulumu, her PR'ın birleştirmeden önce otomatik kontrollerden geçmesini sağlar. Tipik bir hat, derleme, testler ve linting içerir.

yaml
# GitHub Actions — birleştirmeden sonra develop'ı kontrol et
name: Develop CI

on:
  pull_request:
    branches: [develop]

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Unit tests
        run: ./gradlew testDebug
      - name: Lint
        run: ./gradlew lint
      - name: Build
        run: ./gradlew assembleDebug

develop'a birleştirme kuralları

develop'a birleştirme, entegrasyon dalının kararlılığını korumak için katı kurallara uymalıdır. Bu kuralların ihlali çakışmalara, bozuk derlemelere ve ekip zamanının boşa harcanmasına yol açar.

  • Yalnızca Pull Request ile — develop'a doğrudan push yasaktır. Tüm değişiklikler kod incelemesinden geçer.
  • En az bir onay — PR, görevde yer almayan en az bir geliştirici tarafından onaylanmalıdır.
  • Squash merge — temiz bir geçmiş için develop'ta birleştirirken tüm feature dalı commit'lerinin tek bir commit'te birleştirilmesi önerilir.
  • PR güncel olmalı — birleştirmeden önce PR, en son develop commit'ine (rebase veya merge) göre güncellenmelidir.

PR güncel olmalı kuralı özellikle önemlidir. Bir feature dalı bir hafta önce oluşturulduysa ve develop 50 commit ilerlediyse, doğrudan birleştirme, develop yerine PR bağlamında çözülmesi daha iyi olan çakışmalara yol açabilir.

develop'ı hatalı birleştirmelerden koruma

Dal koruma kuralları, GitHub, GitLab veya Bitbucket düzeyinde develop'ta hatalı değişiklikleri önleyen ayarlardır. Kazara yapılan bir push'un bile entegrasyon dalını bozmamasını sağlarlar.

develop için önerilen koruma kuralları:

  • Pull request zorunlu — develop'a doğrudan push'u yasakla. Tüm değişiklikler yalnızca PR ile.
  • Onay zorunlu — PR birleştirmeden önce en az 1-2 onay.
  • Durum kontrolleri zorunlu — CI/CD hattı geçmediyse birleştirmeyi engelle.
  • Güncellik zorunlu — birleştirmeden önce PR dalı develop'a göre güncellenmelidir.
  • Push erişimini kısıtla — develop'a push haklarını yalnızca kıdemli geliştiricilerle sınırla.

develop korumasını ayarlamak 10 dakika sürer ancak bozuk bir entegrasyon dalıyla ilgili haftalarca sürecek kesintileri önler. Çok platformlu ekipleri olan mobil projeler için bu özellikle önemlidir.

develop ile çalışmak için komut örnekleri

Tipik bir geliştirici gününü düşünelim: sabah develop'ı günceller, yeni bir feature dalı oluşturur ve görevi tamamladıktan sonra değişiklikleri develop'ta birleştirir.

bash
# Sabah develop senkronizasyonu
git checkout develop
git pull origin develop

# develop'tan yeni feature dalı oluşturma
git checkout -b feature/add-push-notifications

# Özellik üzerinde çalışılıyor...
git add . && git commit -m "Add FCM integration"

# Geliştirme sırasında develop'ı güncelleme
git fetch origin develop
git rebase origin/develop

# PR onayından sonra — yerel develop'ı güncelle
git checkout develop
git pull origin develop
git branch -d feature/add-push-notifications

develop'daki git pull komutu aynı anda iki işlem gerçekleştirir: git fetch (sunucudan yeni commit'leri alır) ve git merge (bunları yerel dala birleştirir). develop için bu standart senkronizasyon yöntemidir.

Bozuk bir birleştirmeden sonra develop'ı kurtarma

Derlemeyi bozan kod develop'a girerse hızlı hareket etmek gerekir. develop'ın her saatlik kesintisi, tüm geliştirme ekibi için engellenmiş iş demektir.

Derlemeyi bozan kod develop'a girerse sorunlu değişiklikleri geri alan yeni bir commit oluşturmak için git revert kullanın. develop'ta git reset kullanmayın — diğer ekip üyelerinin zaten sahip olduğu geçmişi yeniden yazar.

bash
# Sorunlu commit'i bulma
git log --oneline develop

# revert ile commit'i geri alma (güvenli)
git revert a1b2c3d

# Düzeltmeyi uzak develop'a gönderme
git push origin develop

# Belirli bir commit'teki değişiklikleri görüntüleme
git show a1b2c3d --stat

Sıkça sorulan sorular

Küçük bir projede develop dalı gerekli midir?

Bir veya iki geliştiricili projeler için develop genellikle gereksizdir — main ve feature dalları yeterlidir. Ekip 3+ kişiye büyüdüğünde, develop tamamlanmamış özellikleri kararlı üretim kodundan ayırmak için gerekli hale gelir.

Doğrudan develop'a commit yapılabilir mi?

Hayır, profesyonel bir projede develop'a doğrudan commit yapmak yasaktır. Tüm değişiklikler kod incelemesi ve otomatik kontrollerle Pull Request'ten geçer. İstisna, README veya CI yapılandırmasındaki yönetsel düzenlemelerdir, ancak bunlar bile PR aracılığıyla yapılmalıdır.

Develop trunk-based development'dan nasıl farklıdır?

Trunk-based development'da ayrı bir develop dalı yoktur — tüm geliştiriciler çok kısa feature dalları (1-2 gün) ile main'de çalışır. Bu, yüksek düzeyde test otomasyonuna sahip DevOps kültüründe popüler olan Git Flow'a bir alternatiftir.

Develop sürüm değişiklikleriyle ne sıklıkta güncellenmelidir?

Her sürümden sonra, release dalı develop'a geri birleştirilir ve sürüm hazırlığı sırasında yapılan tüm düzeltmeler dahil edilir. Bu yapılmazsa, develop sürüm kodundan ayrışır ve bir sonraki sürümde çakışmalara neden olur.

Develop bozulursa ve kimse PR oluşturamazsa ne yapmalı?

Develop bozulursa, kıdemli bir geliştirici son kararlı commit'ten bir hotfix dalı oluşturur, sorunu giderir ve özel durumdaki bir PR aracılığıyla düzeltmeyi doğrudan develop'ta birleştirir. Kurtarma sonrasında kök neden analizi yapılır.

Özet

  • Develop Branch, kod incelemesinden sonra tamamlanmış tüm feature dallarının birleştirildiği Git Flow'taki merkezi entegrasyon dalıdır.
  • develop ve main'i ayırmak tamamlanmamış özellikleri kararlı üretim kodundan ayırarak sürüm hataları riskini azaltır.
  • Kod kalitesi develop'ta yüksek olmalıdır: derleme, test geçme ve kod stili otomatik olarak kontrol edilir.
  • develop'a doğrudan push yasaktır — yalnızca en az bir iş arkadaşının onayıyla Pull Request aracılığıyla.
  • Dal koruması dal koruma kuralları aracılığıyla entegrasyon ortamının kazara bozulmasını önler.
  • Release dalı develop'tan oluşturulur ve sürümden sonra geri birleştirilir, develop'ı gerçek kod durumuyla senkronize eder.
  • Tavsiye: develop'a her push'ta CI/CD kontrolleri ayarlayın ve birleştirmeden önce PR'ın güncel olmasını zorunlu kılın.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun