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

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

Release Branch — bu, müəyyən bir buraxılışı yayımlamağa hazırlamaq üçün develop-dan yaradılan Git Flow budağıdır. Burada tətbiqin versiyası təsbit edilir, son səhvlər düzəldilir və metadata yenilənir — yeni funksiyalar əlavə etmədən. Vincent Driessen, 2010-a görə, release budağı buraxılışın hazırlanmasını cari inkişafdan ayırır ki, bu da hər iki fəaliyyəti paralel aparmağa imkan verir.

Əsas məqamlar

  • Release Branch — buraxılışı hazırlamaq üçün müvəqqəti budaq: versiyanın təsbiti, səhv düzəlişləri və metadata.
  • Buraxılışın izolyasiyası eyni anda yeni buraxılışı hazırlamağa və develop-da növbəti funksiyaların inkişafını davam etdirməyə imkan verir.
  • Yeni funksiyaların qadağası — release budağına yalnız düzəlişlər və sənədlər əlavə edilir, yeni kod yox.
  • İkiqat birləşmə — tamamlandıqdan sonra release budağı main-ə (buraxılış) və geri develop-a (səhv düzəlişləri) birləşdirilir.
  • Adlandırma — standart format release/X.Y.Z tətbiq versiyasına uyğun.

Git-də Release Branch nədir

Release Branch (buraxılış budağı) — bu, komanda cari funksiyalar dəstinin buraxılışa hazır olduğuna qərar verdikdə develop-dan yaradılan Git Flow-da müvəqqəti budaqdır. Buraxılışın son hazırlığı nə qədər davam edirsə, o qədər mövcuddur — bir neçə saatdan bir neçə günə qədər.

Release budağının əsas məqsədi — növbəti versiyaların inkişafını dayandırmadan buraxılış üçün müəyyən funksiyalar dəstini dondurmaqdır. Release budağı buraxılışa hazırlaşarkən, digər tərtibatçılar növbəti buraxılış üçün feature budaqlarını develop-a birləşdirməyə davam edə bilərlər.

Release budağında yeni funksiyalar yaradılmır — yalnız səhv düzəlişləri, tətbiq versiyasının yenilənməsi, lokallaşdırma və sənədlər. Bütün işlər tamamlandıqdan sonra release budağı main-ə birləşdirilir (buraxılış kimi qeyd olunur) və geri develop-a (səhv düzəlişlərinin gələcək versiyalara daxil olması üçün).

Atlassian, 2024-ə görə, release budaqları müntəzəm buraxılış dövrləri olan layihələr üçün kritik əhəmiyyətlidir — onlar buraxılış prosesinin proqnozlaşdırıla bilməsini və sabitliyini təmin edir.

Release budağının həyat dövrü

Həyat dövrü — release budağının yaradılmasından silinməsinə qədər bir neçə mərhələni əhatə edir. Hər bir mərhələni başa düşmək komandaya hərəkətləri sinxronlaşdırmağa və səhvlərdən qaçmağa kömək edir.

  1. Yaradılma — develop-ın son commit-indən release/2.5.0 adlı budaq yaradılır. develop növbəti versiya üçün feature budaqlarını qəbul etməyə davam edir.
  2. Hazırlıq — release budağında build.gradle, Info.plist və digər konfiqurasiya fayllarında tətbiq versiyası yenilənir.
  3. Səhv düzəlişi — son test prosesində tapılan kritik səhvlər düzəldilir. Yalnız səhvlər — yeni funksiyalar yox.
  4. Son test — QA komandası release budağında reqressiya testi aparır. Yeni səhvlər eyni budaqda düzəliş üçün göndərilir.
  5. Main-ə birləşmə — release budağı --no-ff bayrağı ilə main-ə birləşdirilir. Buraxılış teqi yaradılır: v2.5.0.
  6. Develop-a birləşmə — release budağı geri develop-a birləşdirilir ki, buraxılışdakı səhv düzəlişləri cari inkişafa daxil olsun.
  7. Silinmə — release budağı lokal və uzaqdan silinir, çünki vəzifəsi tamamlanıb.

6-cı bənd — develop-a geri birləşmə — tez-tez unudulur, lakin kritik əhəmiyyətlidir. Onsuz release-də edilən səhv düzəlişləri develop-a daxil olmaz və növbəti buraxılışda eyni səhvlər yenidən üzə çıxa bilər.

Release budağı mərhələlərinin tipik müddətləri

Release budağının ömrü buraxılışın mürəkkəbliyindən və develop-da kodun keyfiyyətindən asılıdır. Orta ölçülü mobil tətbiq üçün hazırlıq adətən 2-5 iş günü çəkir.

Release budağında nə edilir

Release budağında ciddi məhdud tapşırıqlar dəsti yerinə yetirilir. Bu siyahıdan hər hansı bir kənarlaşma Git Flow modelini pozur və buraxılışın sabitliyi üçün risklər yaradır.

Dəyişiklik növüİcazə verilirNümunə
VersiyalamaBəlibuild.gradle-da versionName-in yenilənməsi
Səhv düzəlişləriBəliBaşlanğıcda crash-in düzəldilməsi
LokallaşdırmaBəliYeni ekranlar üçün tərcümələrin əlavə edilməsi
SənədlərBəliCHANGELOG və README-nin yenilənməsi
Yeni funksiyalarXeyrYeni profil ekranının əlavə edilməsi
RefaktorinqXeyrŞəbəkə qatının yenidən yazılması
Kitabxanaların yenilənməsiEhtiyatlıYalnız səhv düzəlişləri üçün patch versiyaları

Yeni funksiyaların qadağası qaydası — release budağında ən vacib qaydadır. Əgər funksiya buraxılışa çatmayıbsa, növbəti dövrü gözləyir. Yarımçıq funksiyanı release budağına keçirmək cəhdi — son tarixlərin pozulmasının və istehsalatda səhvlərin əsas səbəbidir.

Mobil layihədə versiyanın yenilənməsi

Release budağında tətbiq versiyasının nömrəsi mütləq yenilənir. Android üçün bunlar build.gradle-da versionCode və versionName sahələri, iOS üçün — Info.plist-də CFBundleShortVersionString-dir.

groovy
// build.gradle (app-level) — release budağında versiyanın yenilənməsi
android {
    defaultConfig {
        versionCode 42
        versionName "2.5.0"
    }
}

// iOS üçün — Info.plist-in yenilənməsi
// CFBundleShortVersionString = 2.5.0
// CFBundleVersion = 42

Release və hotfix arasındakı fərqlər

Təcrübəsiz tərtibatçılar tez-tez releasehotfix budaqlarını qarışdırırlar, baxmayaraq ki, onların məqsədi prinsipial olaraq fərqlidir. Budaq növünü seçməkdə səhv kritik düzəlişin gecikməsinə və ya buraxılış prosesinin pozulmasına səbəb ola bilər.

  • Mənbə — release develop-dan yaradılır, hotfix — main-dən. Bu, qalan hər şeyi müəyyən edən əsas fərqdir.
  • Təcililik — release planlıdır: komanda özü hazırlığa nə vaxt başlayacağına qərar verir. Hotfix təcili: istehsalatda problem dərhal düzəliş tələb edir.
  • Məzmun — release bir neçə düzəliş və versiya yeniləməsini əhatə edə bilər. Hotfix yalnız bir kritik düzəliş ehtiva edir.
  • Birləşmə — release main və develop-a birləşdirilir. Hotfix də main və develop-a birləşdirilir, lakin prioritet qaydada.
  • Ömür müddəti — release 1-7 gün yaşayır. Hotfix 30 dəqiqədən 1 günə qədər yaşayır.

Əgər səhv buraxılışın hazırlanması prosesində (release budağında) aşkar edilibsə — bu adi səhv düzəlişidir. Əgər səhv istehsalatda (main-də) aşkar edilibsə — bu hotfix-dir və release budağı artıq mövcud olsa belə, main-dən yaradılır.

Release budaqlarının adlandırma qaydaları

Vahid release budaqlarının adlandırma standartı repozitoriyada naviqasiyanı asanlaşdırır və CI/CD sistemlərinə budağın buraxılış prosesinə aid olduğunu avtomatik müəyyən etməyə imkan verir.

  • release/X.Y.Z — Git Flow standart formatı, burada X.Y.Z buraxılış versiyasıdır. Nümunə: release/2.5.0.
  • release/ad — buraxılışın kod adı ilə alternativ format. Nümunə: release/merlin.
  • release/tarix — buraxılış tarixi ilə format. Nadir hallarda istifadə olunur, çünki versiya tarixdən daha vacibdir. Nümunə: release/2024-12-01.

release/X.Y.Z formatı — üstünlük verilən, çünki budağı buraxılışa təyin ediləcək versiya nömrəsi ilə açıq şəkildə əlaqələndirir. Bu, axtarışı və CI/CD skriptləri ilə avtomatik emalı asanlaşdırır.

Develop-a geri birləşmə strategiyası

Geri birləşmə (merge back) release budağının develop-a — ən vacib və eyni zamanda tez-tez buraxılan əməliyyatlardan biridir. Onsuz release-də edilən bütün səhv düzəlişləri yalnız buraxılış versiyasında qalacaq və növbəti buraxılış dövrünə daxil olmayacaq.

Geri birləşmə prosesi release budağı artıq main-ə birləşdirildikdən sonra yerinə yetirilir. Əvvəlcə release develop-a birləşdirilir, sonra — silinir. Bu, develop-ın buraxılışın hazırlanması prosesində edilən bütün düzəlişləri ehtiva etməsini təmin edir.

Geri birləşmədən sonra münaqişələr mümkündür — xüsusilə develop-da eyni faylları dəyişdirən yeni feature budaqları yaranıbsa. Buraxılışa cavabdeh olan tərtibatçı bu münaqişələri həll edir və develop-ı serverə göndərir.

Bəzi komandalar geri birləşmə üçün merge əvəzinə rebase istifadə edir ki, tarix xətti qalsın. Bununla belə, merge develop üçün daha təhlükəsizdir, çünki digər tərtibatçılar tərəfindən artıq istifadə edilmiş commit tarixini yenidən yazmır.

Release ilə iş üçün əmr nümunələri

Release budağı ilə tam iş dövrünə baxaq: 2.5.0 versiyalı mobil tətbiqin uğurlu buraxılışından sonra yaradılmadan silinməyə qədər.

bash
# 1. Develop-dan release budağının yaradılması
git checkout develop
git pull origin develop
git checkout -b release/2.5.0

# 2. Versiyanın yenilənməsi və səhv düzəlişləri
git add build.gradle
git commit -m "Bump version to 2.5.0"

# 3. Səhvlərin düzəldilməsi (yalnız bugfixes)
git add src/fix/
git commit -m "Fix crash on payment screen"

# 4. Release budağının serverə göndərilməsi
git push origin release/2.5.0

# 5. Release-in main-ə birləşdirilməsi
git checkout main
git pull origin main
git merge --no-ff release/2.5.0
git tag -a v2.5.0 -m "Release 2.5.0"
git push origin main --tags

# 6. Develop-a geri birləşmə
git checkout develop
git merge --no-ff release/2.5.0
git push origin develop

# 7. Release budağının silinməsi
git branch -d release/2.5.0
git push origin --delete release/2.5.0

5 və 6-cı əmrlər — ikiqat birləşmə — kritik əhəmiyyətlidir. Əvvəlcə main buraxılış kodunu və teqi alır, sonra develop release-dən səhv düzəlişləri ilə sinxronlaşır. 6-cı addım buraxılıbsa, release-dən düzəlişlər növbəti inkişaf dövrünə daxil olmayacaq.

Buraxılış prosesinin avtomatlaşdırılması

Müntəzəm buraxılışları olan mobil layihələr üçün release budağının yaradılması və versiyanın yenilənməsi prosesi CI/CD skriptləri vasitəsilə avtomatlaşdırıla bilər. GitHub Actions düyməni basdıqda avtomatik versiya yeniləməsi ilə release budağı yaradan workflow yaratmağa imkan verir.

Müntəzəm buraxılışları olan mobil layihələr üçün release budağının yaradılması və versiyanın yenilənməsi prosesi CI/CD skriptləri vasitəsilə avtomatlaşdırıla bilər. GitHub Actions düyməni basdıqda avtomatik versiya yeniləməsi ilə release budağı yaradan workflow yaratmağa imkan verir.

yaml
# GitHub Actions — release budağının yaradılmasının avtomatlaşdırılması
name: Create Release Branch

on:
  workflow_dispatch:
    inputs:
      version:
        description: 'Release version (e.g. 2.5.0)'
        required: true

jobs:
  create-release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Create release branch
        run: |
          git checkout develop
          git checkout -b release/${{ inputs.version }}
          git push origin release/${{ inputs.version }}

Tez-tez verilən suallar

Eyni anda neçə release budağı ola bilər?

Git Flow-a əməl edirsinizsə, eyni anda yalnız bir release budağı ola bilər. İki aktiv release budağının olması komandanın iki buraxılışı paralel buraxmağa çalışdığını göstərir — bu, ardıcıl buraxılış prinsipini pozur və versiyalarla qarışıqlıq yaradır.

Release budağı bitməmiş funksiya ehtiva edirsə nə etməli?

git revert vasitəsilə release budağından bitməmiş funksiyanın commit-lərini silin və funksiyanı növbəti buraxılışa qədər təxirə salın. Heç vaxt yarımçıq funksionallığı istehsalata buraxmayın — texniki borc və potensial səhvlər tələsməyə dəyməz.

Release budağının yaradılmasını keçmək olarmı?

Bir düzəlişli sadə buraxılışlar üçün release budağını keçib birbaşa develop-dan main-ə birləşmə edə bilərsiniz. Lakin standart buraxılışlar üçün release budağı məcburidir — versiyanı təsbit edir, hazırlığı təcrid edir və səhv düzəlişlərinin ikiqat birləşməsini təmin edir.

Main artıq birləşmə alıbsa, buraxılışı necə ləğv etməli?

Main-də buraxılışın bütün dəyişikliklərini ləğv edən yeni commit yaratmaq üçün git revert istifadə edin. Sonra git push origin --delete vX.Y.Z əmri ilə buraxılış teqini silin. Problemləri düzəltdikdən sonra artırılmış patch nömrəsi ilə yeni release budağı yaradın.

Release candidate release branch-dən nə ilə fərqlənir?

Release candidate (RC) — son testdən keçən kompilyasiya artefaktıdır. Release branch — release candidate-in yaradıldığı Git budağıdır. Bir release budağı səhvlər düzəldildikcə bir neçə RC kompilyasiyası (RC1, RC2 və s.) yarada bilər.

Nəticə

  • Release Branch — buraxılışın son hazırlığı üçün müvəqqəti Git Flow budağı: yeni funksiyalar olmadan versiyalama, səhv düzəlişləri və lokallaşdırma.
  • İnkişafın izolyasiyası — release budağı eyni anda buraxılışı hazırlamağa və develop-da növbəti funksiyaların inkişafını davam etdirməyə imkan verir.
  • İkiqat birləşmə — tamamlandıqdan sonra release main-ə (buraxılış teqi) və geri develop-a (səhv düzəlişlərinin sinxronizasiyası) birləşdirilir.
  • Yeni funksiyaların qadağası — release budağına yalnız düzəlişlər və metadata daxil edilir. Yeni funksionallıq — növbəti buraxılışa.
  • Adlandırma — SemVer-ə uyğun versiya nömrəsi ilə standart format release/X.Y.Z.
  • Develop-a geri birləşmə — tez-tez buraxılan məcburi addım, lakin onsuz buraxılışın səhv düzəlişləri gələcək versiyalar üçün itirilir.
  • Tövsiyə: release budağının yaradılmasını və versiyanın yenilənməsini CI/CD vasitəsilə avtomatlaşdırın, ikiqat birləşməni isə buraxılış yoxlama siyahısının məcburi bəndi 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