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 (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 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ət | Develop | Main / Master |
|---|---|---|
| Məqsəd | Yeni funksiyaların inteqrasiyası | Stabil release kodu |
| Sabitlik | Yüksək (testlərdən sonra) | Maksimal (istehsalat) |
| Commit tezliyi | Gündəlik (feature birləşdirmə) | Release-lərlə (hər 1-4 həftə) |
| Budaq mənbəyi | Ondan feature yaradılır | Ondan 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.
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.
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 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.
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:
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.
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.
# 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ə 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.
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.
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ı:
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.
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.
# 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.
Ə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.
# 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
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.
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.
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.
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, 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ə
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.
Həm də oxuyun