Git-da Develop Branch — bu nima, maqsadi va ishlash prinsipi

Muallif: IT Sectr Nashr etilgan: 2026-05-09 O'qish vaqti: 8 daq

Develop Branch — bu Git Flow-dagi asosiy integratsiya tarmog'i bo'lib, unga release tayyorlashdan oldin barcha tugallangan feature tarmoqlari birlashtiriladi. Main-dan farqli o'laroq, develop eng yangi, ammo hali chiqarilmagan o'zgarishlarni o'z ichiga oladi — bu yerda jamoadagi barcha dasturchilarning kodi kunlik integratsiyasi amalga oshiriladi. Atlassian, 2024 ma'lumotlariga ko'ra, develop Git Flow-da majburiy tarmoqdir va jamoa uchun barqaror integratsiya muhitini ta'minlaydi.

Asosiy fikrlar

  • Develop Branch — release tayyorlashdan oldin barcha tugallangan funksiyalar yig'iladigan rivojlanish tarmog'i.
  • Feature tarmoqlarining manbai — barcha yangi funksiyalar developning oxirgi commitidan yaratiladi.
  • Integratsion testlash release tarmog'i yaratilishidan oldin developda amalga oshiriladi.
  • Develop barqarorligi yuqori bo'lishi kerak — kod bu yerda code review va avtomatik tekshiruvlardan o'tadi.
  • Main-ga birlashtirish faqat release tarmog'i orqali amalga oshiriladi, to'g'ridan-to'g'ri developdan emas.

Git-da Develop Branch nima

Develop Branch (rivojlanish tarmog'i) — Git Flow-dagi uzoq muddatli tarmoq bo'lib, barcha dasturchilarning kodini integratsiya qilish uchun markaziy tugun vazifasini bajaradi. Rivojlanish tugagandan va code review-dan o'tgandan so'ng, feature tarmoqlari unga birlashtiriladi.

Developdagi kod har doim release yaratishga tayyor holatda bo'ladi, garchi hali ishlab chiqarishga chiqarilmagan bo'lsa ham. Bu developdagi barcha funksiyalar review, test va integratsiya tekshiruvlaridan o'tgan, ammo hali o'z release siklini kutayotganini anglatadi.

Main-dan farqli o'laroq, har bir kod versiyasi release bo'lgan joyda, develop doimiy o'zgarishlar oqimini o'z ichiga oladi. Developdagi commitlar feature tarmoqlari birlashtirilishi bilan paydo bo'ladi, bu kuniga bir necha marta sodir bo'lishi mumkin.

Vincent Driessen, 2010 ma'lumotlariga ko'ra, develop muvaffaqiyatli branching modelining asosiy elementi hisoblanadi, chunki u qoralama ishni chiqarishga tayyor versiyalardan ajratadi.

Develop va main branch o'rtasidagi farqlar

Develop va main o'rtasidagi farqlarni tushunish Git Flow-da to'g'ri ishlash uchun juda muhimdir. Bu tarmoqlar turli funktsiyalarni bajaradi va barqarorlik uchun turli talablarga ega.

XususiyatDevelopMain / Master
MaqsadYangi funksiyalarni integratsiya qilishBarqaror release kodi
BarqarorlikYuqori (testlardan so'ng)Maksimal (ishlab chiqarish)
Commit chastotasiKunlik (feature birlashtirish)Release bo'yicha (har 1-4 hafta)
Tarmoq manbaiUndan feature yaratiladiUndan hotfix yaratiladi
BirlashtirishFeature-dan PR orqaliRelease-dan merge orqali

Develop va main ga bo'linish jamoaga doimiy ravishda yangi kodni integratsiya qilish imkonini beradi, ishlab chiqarish versiyasining barqarorligini xavf ostiga qo'ymasdan. Dasturchilar o'z kodlarini developda PR tasdiqlangandan so'ng darhol, hatto rasmiy releasedan oldin ham ko'rishlari mumkin.

Developning Git Flow-dagi roli

Git Flow modelida develop feature tarmoqlari (o'zgarishlar manbai) va release tarmoqlari (chiqarishga tayyorgarlik) o'rtasida markaziy o'rinni egallaydi. Bu ierarxiyani tushunish samarali tarmoqlanishning asosidir.

  • Feature → Develop — har bir tugallangan funksiya Pull Request bilan code review orqali developga birlashtiriladi.
  • Develop → Release — release uchun yetarli miqdordagi o'zgarishlar to'planganda, developdan release tarmog'i yaratiladi.
  • Release → Main + Develop — yakuniy tayyorgarlikdan so'ng, release tarmog'i main ga (release) va orqaga developga (xatolarni tuzatish) birlashtiriladi.
  • Hotfix → Main + Develop — muhim tuzatishlar main dan yaratiladi va ikkala tarmoqqa birlashtiriladi.

Bunday struktura develop har doim barcha yangi funksiyalar bilan eng so'nggi kod versiyasini, main esa faqat tekshirilgan ishlab chiqarish kodini o'z ichiga olishini kafolatlaydi. Bu, ayniqsa, App Store va Google Play-da uzoq review siklga ega mobil loyihalar uchun muhimdir.

Developning Git Flow-dagi boshqa tarmoqlar bilan bog'liqligi

Develop feature, release va hotfix tarmoqlari o'rtasidagi markaziy bo'g'in sifatida ishlaydi. Birlashtirish yo'nalishlarini tushunish mojarolar va commitlarni yo'qotishning oldini olish uchun asosdir.

Developda kod sifatiga qo'yiladigan talablar

Kod sifati developda yuqori bo'lishi kerak, ammo mutlaq emas. Main-dan farqli o'laroq, har bir xato shoshilinch hotfixni anglatadigan joyda, develop releasedan oldin tuzatiladigan kichik kamchiliklarga yo'l qo'yadi.

Developga birlashtirishdan oldin kod uchun minimal talablar:

  • Kompilyatsiya — kod xatosiz kompilyatsiya qilinishi kerak. Developda buzilgan kompilyatsiya butun jamoaning ishini bloklaydi.
  • Birlik testlari — barcha mavjud testlar o'tishi kerak. Yangi kod kamida 70% test qamroviga ega bo'lishi kerak.
  • Code style — kod jamoada qabul qilingan formatlash va nomlash standartlariga mos kelishi kerak.
  • Eskirgan API larning yo'qligi — yangi kodda eskirgan metodlardan foydalanishga yo'l qo'yilmaydi.

CI/CD pipeline-dagi avtomatik tekshiruvlar developga har bir pushda ishga tushishi kerak. Agar kompilyatsiya buzilsa, mas'ul dasturchi muammoni bir soat ichida tuzatishi yoki o'z commitini qaytarishi kerak.

Develop uchun CI/CD tekshiruvlari

GitHub Actions ning develop uchun sozlamasi har bir PR birlashtirishdan oldin avtomatik tekshiruvdan o'tishini kafolatlaydi. Oddiy pipeline kompilyatsiya, testlar va lintingni o'z ichiga oladi.

yaml
# GitHub Actions — birlashtirishdan so'ng developni tekshirish
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

Developga birlashtirish qoidalari

Developga birlashtirish integratsiya tarmog'ining barqarorligini saqlash uchun qat'iy qoidalarga bo'ysunishi kerak. Ushbu qoidalarning buzilishi mojarolarga, buzilgan kompilyatsiyalarga va jamoa vaqtining yo'qotilishiga olib keladi.

  • Faqat Pull Request orqali — developga to'g'ridan-to'g'ri push taqiqlanadi. Barcha o'zgarishlar code review-dan o'tadi.
  • Kamida bitta tasdiq — PR topshiriqda ishtirok etmagan kamida bitta dasturchi tomonidan tasdiqlanishi kerak.
  • Squash merge — toza tarix uchun developga birlashtirishda feature tarmog'ining barcha commitlarini bittaga birlashtirish tavsiya etiladi.
  • PR ning dolzarbligi — birlashtirishdan oldin PR developning oxirgi commitiga nisbatan yangilanishi kerak (rebase yoki merge).

PR ning dolzarbligi qoidasi ayniqsa muhimdir. Agar feature tarmog'i bir hafta oldin yaratilgan bo'lsa va develop 50 commit oldinda bo'lsa, to'g'ridan-to'g'ri birlashtirish developda emas, balki PR kontekstida hal qilish yaxshiroq bo'lgan mojarolarga olib kelishi mumkin.

Developni noto'g'ri birlashtirishlardan himoya qilish

Branch protection rules (tarmoqni himoya qilish qoidalari) — GitHub, GitLab yoki Bitbucket darajasidagi sozlamalar bo'lib, developda noto'g'ri o'zgarishlarning oldini oladi. Ular hatto tasodifiy push ham integratsiya tarmog'ini buzmasligini kafolatlaydi.

Develop uchun tavsiya etilgan himoya qoidalari:

  • Require pull request — developga to'g'ridan-to'g'ri push ni taqiqlang. Barcha o'zgarishlar faqat PR orqali.
  • Require approvals — PR birlashtirilishidan oldin kamida 1-2 tasdiq.
  • Require status checks — CI/CD pipeline o'tmagan bo'lsa, birlashtirishni bloklang.
  • Require up-to-date — PR tarmog'i birlashtirishdan oldin developga nisbatan yangilanishi kerak.
  • Restrict push access — developga push huquqini faqat katta dasturchilar uchun cheklang.

Develop himoyasini sozlash 10 daqiqa davom etadi, ammo buzilgan integratsiya tarmog'i bilan bog'liq haftalarca to'xtab qolishlarning oldini oladi. Ko'p platformali jamoalarga ega mobil loyihalar uchun bu ayniqsa dolzarbdir.

Develop bilan ishlash uchun buyruq namunalari

Oddiy dasturchi kunini ko'rib chiqaylik: ertalab developni yangilaydi, yangi feature tarmog'ini yaratadi va topshiriqni tugatgandan so'ng o'zgarishlarni developga qaytarib birlashtiradi.

bash
# Ertalabki develop sinxronizatsiyasi
git checkout develop
git pull origin develop

# Developdan yangi feature tarmog'ini yaratish
git checkout -b feature/add-push-notifications

# Funksiya ustida ishlash...
git add . && git commit -m "Add FCM integration"

# Rivojlanish vaqtida developni yangilash
git fetch origin develop
git rebase origin/develop

# PR tasdiqlangandan so'ng — mahalliy developni yangilash
git checkout develop
git pull origin develop
git branch -d feature/add-push-notifications

Developda git pull buyrug'i bir vaqtning o'zida ikkita operatsiyani bajaradi: git fetch (serverdan yangi commitlarni oladi) va git merge (ularni mahalliy tarmoq bilan birlashtiradi). Develop uchun bu sinxronizatsiyaning standart usulidir.

Buzilgan birlashtirishdan so'ng developni tiklash

Agar developga kompilyatsiyani buzgan kod tushgan bo'lsa, tez harakat qilish kerak. Developning har bir soat to'xtab qolishi butun dasturchilar jamoasining bloklangan ishini anglatadi.

Agar developga kompilyatsiyani buzgan kod tushgan bo'lsa, muammoli o'zgarishlarni bekor qiluvchi yangi commit yaratish uchun git revert dan foydalaning. Developda git reset dan foydalanmang — bu boshqa ishtirokchilarda mavjud bo'lgan tarixni qayta yozadi.

bash
# Muammoli commitni qidirish
git log --oneline develop

# Commitni revert orqali bekor qilish (xavfsiz)
git revert a1b2c3d

# Tuzatishni uzoqdagi developga jo'natish
git push origin develop

# Muayyan commitdagi o'zgarishlarni ko'rish
git show a1b2c3d --stat

Tez-tez so'raladigan savollar

Kichik loyihada develop tarmog'i kerakmi?

Bir-ikki dasturchisi bo'lgan loyihalar uchun develop ko'pincha ortiqcha — main va feature tarmoqlari etarli. Jamoa 3+ kishiga o'sgandan so'ng, develop tugallanmagan funksiyalarni barqaror ishlab chiqarish kodidan ajratish uchun zarur bo'ladi.

To'g'ridan-to'g'ri developga commit qilish mumkinmi?

Yo'q, har qanday professional loyihada developga to'g'ridan-to'g'ri yozish taqiqlanadi. Barcha o'zgarishlar Pull Request va code review bilan avtomatik tekshiruvlardan o'tadi. Istisno — README yoki CI konfiguratsiyasining ma'muriy tuzatishlari, ammo ularni ham PR orqali qilish yaxshiroqdir.

Develop trunk-based development dan nimasi bilan farq qiladi?

Trunk-based development da alohida develop tarmog'i yo'q — barcha dasturchilar juda qisqa feature tarmoqlari (1-2 kun) bilan main da ishlaydi. Bu yuqori darajadagi test avtomatlashtirishga ega DevOps madaniyatida mashhur bo'lgan Git Flow ga alternativdir.

Developni release o'zgarishlari bilan qanchalik tez-tez yangilash kerak?

Har bir releasedan so'ng, release tarmog'i developga qaytarib birlashtiriladi, shunda release tayyorlash jarayonida qilingan barcha tuzatishlar developga kiritiladi. Agar bu bajarilmasa, develop release kodidan farq qiladi, bu keyingi release vaqtida mojarolarga olib keladi.

Develop buzilgan bo'lsa va hech kim PR yarata olmasa nima qilish kerak?

Agar develop buzilgan bo'lsa, katta dasturchi oxirgi barqaror commitdan hotfix tarmog'ini yaratadi, muammoni tuzatadi va tuzatishni maxsus statusli PR orqali to'g'ridan-to'g'ri developga birlashtiradi. Tiklashdan so'ng, buzilish sababining tahlili o'tkaziladi.

Xulosa

  • Develop Branch — Git Flow-dagi markaziy integratsiya tarmog'i, code review-dan so'ng barcha tugallangan feature tarmoqlari unga birlashtiriladi.
  • Develop va main ga bo'linish tugallanmagan funksiyalarni barqaror ishlab chiqarish kodidan ajratish imkonini beradi, release xatolari riskini kamaytiradi.
  • Kod sifati developda yuqori bo'lishi kerak: kompilyatsiya, testlarning o'tishi va code style avtomatik tekshiriladi.
  • Developga to'g'ridan-to'g'ri push taqiqlangan — faqat kamida bitta hamkasb tasdiqi bilan Pull Request orqali.
  • Tarmoq himoyasi branch protection rules orqali integratsiya muhitining tasodifiy buzilishining oldini oladi.
  • Release tarmog'i developdan yaratiladi va releasedan so'ng qaytarib birlashtiriladi, developni kodning real holati bilan sinxronlashtiradi.
  • Tavsiya: developga har bir pushda CI/CD tekshiruvlarini sozlang va birlashtirishdan oldin PR ning dolzarbligini talab qiling.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing