Git-də Develop Branch — bu nədir, məqsədi və iş prinsipi

Müəllif: IT Sectr Dərc olunub: 2026-05-09 Oxuma vaxtı: 8 dəq

Develop Branch — bu, Git Flow-da əsas inteqrasiya budağıdır, bura release hazırlığından əvvəl bütün tamamlanmış feature budaqları birləşdirilir. Main-dən fərqli olaraq, develop ən yeni, lakin hələ buraxılmamış dəyişiklikləri ehtiva edir — burada komandanın bütün tərtibatçılarının kodu gündəlik inteqrasiya olunur. Atlassian, 2024 məlumatlarına görə, develop Git Flow-da məcburi budaqdır və komanda üçün stabil inteqrasiya mühiti təmin edir.

Əsas məqamlar

  • Develop Branch — release hazırlığından əvvəl bütün tamamlanmış funksiyaların toplandığı inkişaf budağı.
  • Feature budaqlarının mənbəyi — bütün yeni funksiyalar develop-in son commitindən yaradılır.
  • İnteqrasiya testi release budağı yaradılmazdan əvvəl develop üzərində aparılır.
  • Develop-in sabitliyi yüksək olmalıdır — kod burada code review və avtomatik yoxlamalardan keçir.
  • Main-ə birləşdirmə yalnız release budağı vasitəsilə baş verir, birbaşa develop-dən deyil.

Git-də Develop Branch nədir

Develop Branch (inkişaf budağı) — Git Flow-da uzunömürlü budaqdır, bütün tərtibatçıların kodunun inteqrasiyası üçün mərkəzi node rolunu oynayır. İnkişaf başa çatdıqdan və code review-dən keçdikdən sonra feature budaqları bura birləşdirilir.

Develop-dakı kod həmişə release yaratmağa hazır vəziyyətdədir, baxmayaraq ki, hələ istehsalata buraxılmamışdır. Bu o deməkdir ki, develop-dakı bütün funksiyalar review, test və inteqrasiya yoxlamalarından keçmişdir, lakin hələ də release dövrünü gözləyir.

Main-dən fərqli olaraq, hər kod versiyasının release olduğu yerdə, develop davamlı dəyişiklik axınını ehtiva edir. Develop-da commitlər feature budaqlarının birləşdirilməsi ilə ortaya çıxır, bu da gündə bir neçə dəfə baş verə bilər.

Vincent Driessen, 2010 məlumatlarına görə, develop uğurlu branching modelinin əsas elementidir, çünki o, qaralama işi buraxılışa hazır versiyalardan ayırır.

Develop və main branch arasındakı fərqlər

Developmain arasındakı fərqləri başa düşmək Git Flow-da düzgün iş üçün kritik əhəmiyyət daşıyır. Bu budaqlar müxtəlif funksiyaları yerinə yetirir və sabitlik üçün müxtəlif tələblərə malikdir.

XüsusiyyətDevelopMain / Master
MəqsədYeni funksiyaların inteqrasiyasıStabil release kodu
SabitlikYüksək (testlərdən sonra)Maksimal (istehsalat)
Commit tezliyiGündəlik (feature birləşdirmə)Release-lərlə (hər 1-4 həftə)
Budaq mənbəyiOndan feature yaradılırOndan hotfix yaradılır
BirləşdirməFeature-dan PR vasitəsiləRelease-dən merge vasitəsilə

Develop və main-ə bölünmə komandaya davamlı olaraq yeni kodu inteqrasiya etməyə imkan verir, istehsal versiyasının sabitliyini riskə atmadan. Tərtibatçılar öz kodlarını develop-də PR təsdiqləndikdən dərhal sonra, hətta rəsmi release-dən əvvəl görə bilərlər.

Develop-in Git Flow-da rolu

Git Flow modelində develop feature budaqları (dəyişiklik mənbəyi) və release budaqları (buraxılışa hazırlıq) arasında mərkəzi yer tutur. Bu iyerarxiyanı başa düşmək effektiv budaqlanmanın əsasıdır.

  • Feature → Develop — hər bir tamamlanmış funksiya Pull Request ilə code review-dən keçərək develop-a birləşdirilir.
  • Develop → Release — release üçün kifayət qədər dəyişiklik toplandıqda, develop-dan release budağı yaradılır.
  • Release → Main + Develop — yekun hazırlıqdan sonra release budağı main-ə (release) və geri develop-a (bugfix) birləşdirilir.
  • Hotfix → Main + Develop — kritik düzəlişlər main-dən yaradılır və hər iki budağa birləşdirilir.

Belə bir struktur develop-in həmişə bütün yeni funksiyalarla ən son kod versiyasını, main-in isə yalnız yoxlanılmış istehsal kodunu ehtiva etməsini təmin edir. Bu, App Store və Google Play-də uzun review dövrü olan mobil layihələr üçün xüsusilə vacibdir.

Develop-in Git Flow-un digər budaqları ilə əlaqəsi

Develop feature, release və hotfix budaqları arasında mərkəzi halqa rolunu oynayır. Birləşdirmə istiqamətlərini başa düşmək konfliktlərin və commit itkisinin qarşısını almaq üçün əsasdır.

Develop-da kod keyfiyyətinə tələblər

Kod keyfiyyəti develop-da yüksək, lakin mütləq olmamalıdır. Main-dən fərqli olaraq, hər səhvin təcili hotfix demək olduğu yerdə, develop release-dən əvvəl düzəldiləcək kiçik çatışmazlıqlara yol verir.

Develop-a birləşdirmədən əvvəl kod üçün minimal tələblər:

  • Kompilyasiya — kod səhvsiz kompilyasiya olunmalıdır. Develop-da qırılan kompilyasiya bütün komandanın işini bloklayır.
  • Vahid testləri — bütün mövcud testlər keçməlidir. Yeni kod minimum 70% test əhatəsinə malik olmalıdır.
  • Code style — kod komandada qəbul edilmiş formatlama və adlandırma standartlarına uyğun olmalıdır.
  • Köhnəlmiş API-lərin olmaması — yeni kodda köhnəlmiş metodlardan istifadəyə icazə verilmir.

CI/CD pipeline-da avtomatik yoxlamalar develop-a hər push-da işə düşməlidir. Əgər kompilyasiya pozulursa, məsul tərtibatçı problemi bir saat ərzində düzəltməli və ya öz commitini geri qaytarmalıdır.

Develop üçün CI/CD yoxlamaları

GitHub Actions-un develop üçün konfiqurasiyası hər PR-nin birləşdirmədən əvvəl avtomatik yoxlamadan keçməsini təmin edir. Tipik pipeline kompilyasiya, testlər və linting daxildir.

yaml
# GitHub Actions — birləşdirmədən sonra develop-ı yoxlama
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 birləşdirmə qaydaları

Develop-a birləşdirmə inteqrasiya budağının sabitliyini qorumaq üçün ciddi qaydalara tabe olmalıdır. Bu qaydaların pozulması konfliktlərə, qırılan kompilyasiyalara və komanda vaxtının itkisinə səbəb olur.

  • Yalnız Pull Request vasitəsilə — develop-a birbaşa push qadağandır. Bütün dəyişikliklər code review-dən keçir.
  • Minimum bir approve — PR tapşırıqda iştirak etməyən ən azı bir tərtibatçı tərəfindən təsdiqlənməlidir.
  • Squash merge — təmiz tarix üçün develop-a birləşdirərkən feature budağının bütün commitlərini birinə birləşdirmək tövsiyə olunur.
  • PR-nin aktual olması — birləşdirmədən əvvəl PR develop-in son commit-inə nisbətən yenilənməlidir (rebase və ya merge).

PR-nin aktual olması qaydası xüsusilə vacibdir. Əgər feature budağı bir həftə əvvəl yaradılıbsa və develop 50 commit irəlidədirsə, birbaşa birləşdirmə develop-da deyil, PR kontekstində həll etmək daha yaxşı olan konfliktlərə səbəb ola bilər.

Develop-ı səhv birləşdirmələrdən qoruma

Branch protection rules (budaq qoruma qaydaları) — GitHub, GitLab və ya Bitbucket səviyyəsində develop-da səhv dəyişikliklərin qarşısını alan parametrlərdir. Onlar hətta təsadüfi push-un inteqrasiya budağını sındırmamasını təmin edir.

Develop üçün tövsiyə olunan qoruma qaydaları:

  • Require pull request — develop-a birbaşa push-u qadağan et. Bütün dəyişikliklər yalnız PR vasitəsilə.
  • Require approvals — PR birləşdirməsindən əvvəl minimum 1-2 təsdiq.
  • Require status checks — CI/CD pipeline keçməzsə, birləşdirməni blokla.
  • Require up-to-date — PR budağı birləşdirmədən əvvəl develop-a nisbətən yenilənməlidir.
  • Restrict push access — develop-a push hüququnu yalnız senior tərtibatçılar üçün məhdudlaşdır.

Develop qorunmasını konfiqurasiya etmək 10 dəqiqə çəkir, lakin qırılan inteqrasiya budağı ilə bağlı həftələrlə dayanmanın qarşısını alır. Çoxplatformalı komandaları olan mobil layihələr üçün bu xüsusilə aktualdır.

Develop ilə işləmək üçün əmr nümunələri

Tipik bir tərtibatçı gününü nəzərdən keçirək: səhər develop-ı yeniləyir, yeni feature budağı yaradır və tapşırığı bitirdikdən sonra dəyişiklikləri develop-a geri birləşdirir.

bash
# Səhər develop sinxronizasiyası
git checkout develop
git pull origin develop

# Develop-dan yeni feature budağı yaratma
git checkout -b feature/add-push-notifications

# Funksiya üzərində iş...
git add . && git commit -m "Add FCM integration"

# İnkişaf zamanı develop-ı yeniləmə
git fetch origin develop
git rebase origin/develop

# PR təsdiqləndikdən sonra — lokal develop-ı yeniləmə
git checkout develop
git pull origin develop
git branch -d feature/add-push-notifications

Develop-da git pull əmri eyni anda iki əməliyyatı yerinə yetirir: git fetch (serverdən yeni commitləri gətirir) və git merge (onları lokal budaqla birləşdirir). Develop üçün bu, sinxronizasiyanın standart üsuludur.

Qırılan birləşdirmədən sonra develop-ı bərpa etmək

Əgər develop-a kompilyasiyanı sındıran kod daxil olubsa, tez hərəkət etmək lazımdır. Develop-in hər saat dayanması bütün tərtibatçı komandasının bloklanmış işi deməkdir.

Əgər develop-a kompilyasiyanı sındıran kod daxil olubsa, problemli dəyişiklikləri ləğv edən yeni commit yaratmaq üçün git revert istifadə edin. Develop-da git reset istifadə etməyin — bu, digər iştirakçılarda artıq mövcud olan tarixi yenidən yazır.

bash
# Problemli commit-in axtarışı
git log --oneline develop

# Commit-i revert vasitəsilə ləğv etmə (təhlükəsiz)
git revert a1b2c3d

# Düzəlişin uzaq develop-a göndərilməsi
git push origin develop

# Müəyyən commit-də dəyişikliklərə baxış
git show a1b2c3d --stat

Tez-tez verilən suallar

Kiçik bir layihədə develop budağı lazımdırmı?

Bir-iki tərtibatçısı olan layihələr üçün develop çox vaxt artıqdır — main və feature budaqları kifayətdir. Komanda 3+ nəfərə qədər böyüdükdə, develop tamamlanmamış funksiyaları stabil istehsal kodundan təcrid etmək üçün zəruri olur.

Birbaşa develop-a commit etmək olarmı?

Xeyr, istənilən peşəkar layihədə develop-a birbaşa yazmaq qadağandır. Bütün dəyişikliklər Pull Request və code review ilə avtomatik yoxlamalardan keçir. İstisna — README və ya CI konfiqurasiyasının inzibati düzəlişləridir, lakin onları da PR vasitəsilə etmək daha yaxşıdır.

Develop trunk-based development-dən nə ilə fərqlənir?

Trunk-based development-də ayrıca develop budağı yoxdur — bütün tərtibatçılar çox qısa feature budaqları (1-2 gün) ilə main-də işləyirlər. Bu, yüksək səviyyədə test avtomatlaşdırması olan DevOps mədəniyyətində məşhur olan Git Flow-a alternativdir.

Develop-ı release dəyişiklikləri ilə nə qədər tez-tez yeniləmək lazımdır?

Hər release-dən sonra release budağı develop-a geri birləşdirilir ki, release hazırlığı prosesində edilən bütün düzəlişlər develop-a daxil edilsin. Əgər bu edilməzsə, develop release kodundan fərqlənəcək, bu da növbəti release zamanı konfliktlərə səbəb olacaq.

Develop qırılıbsa və heç kim PR yarada bilmirsə nə etməli?

Develop qırılıbsa, baş tərtibatçı son sabit commit-dən hotfix budağı yaradır, problemi düzəldir və düzəlişi xüsusi statuslu PR vasitəsilə birbaşa develop-a birləşdirir. Bərpa edildikdən sonra qırılma səbəbinin təhlili aparılır.

Nəticə

  • Develop Branch — Git Flow-da mərkəzi inteqrasiya budağı, code review-dən sonra bütün tamamlanmış feature budaqları bura birləşdirilir.
  • Develop və main-ə bölünmə tamamlanmamış funksiyaları stabil istehsal kodundan təcrid etməyə imkan verir, release səhvləri riskini azaldır.
  • Kod keyfiyyəti develop-da yüksək olmalıdır: kompilyasiya, testlərin keçməsi və code style avtomatik yoxlanılır.
  • Develop-a birbaşa push qadağandır — yalnız minimum bir həmkar təsdiqi ilə Pull Request vasitəsilə.
  • Budaq qorunması branch protection rules vasitəsilə inteqrasiya mühitinin təsadüfi sındırılmasının qarşısını alır.
  • Release budağı develop-dan yaradılır və release-dən sonra geri birləşdirilərək develop-ı real kod vəziyyəti ilə sinxronlaşdırır.
  • Tövsiyə: develop-a hər push-da CI/CD yoxlamalarını konfiqurasiya edin və birləşdirmədən əvvəl PR-nin aktual olmasını tələb edin.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun