TGViewer
Mabrur | Dasturlash va AI Mabrur | Dasturlash va AI @mabrur_dev · 4.97K subscribers
Post #1525 4.23K
Ko'p loyihalarda, ayniqsa jamoa kattalashganda, Gitni boshqarish haqiqiy bosh og'rig'iga aylanadi. Kimdir main'ga to'g'ridan-to'g'ri commit qiladi, boshqasi hali pishmagan feature'ni merge qilib yuboradi va production'dagi kod "sinadi".

Bunday holatlarga tushmaslik uchun ancha tartibli va sinovdan o'tgan Gitflow workflowidan foydalansa bo'ladi. Bu flowni yana bir yaxshi tomoni muntazam versiyalarga (versioned releases) ega bo'lgan loyihalar uchun ham ideal yechim.

Hozir bu workflow ishlashini sodda tilda tushunishga harakat qilamiz.

Menda ikkita doimiy (long-lived) branch bor:

🌳 Master/Main branch:
Bu - production'dagi, ya'ni real foydalanuvchilar ishlatayotgan eng barqaror va toza kod. Bu yerga to'g'ridan-to'g'ri hech narsa commit qilinmaydi! Main'dagi har bir commit - bu yangi versiya (release) degani va u v1.0.1, v1.1.0 kabi tag'lar bilan belgilanadi.

🌿 Develop branch:
Bu - bizning asosiy ish maydonimiz. Barcha yangi feature'lar shu yerga yig'iladi. Develop branch'i kelajakdagi release uchun tayyorlanayotgan kodning eng so'nggi holatini saqlab yuradi.


Endi esa, asosiy ishni bajaradigan vaqtinchalik (short-lived) branch'lar:

💡 Feature branch (feature/*)
Har bir yangi feature (funksionallik) uchun men develop'dan alohida feature/task-111-user-authentication kabi yangi branch ochaman. Bu ishni boshqa feature'lardan to'liq izolyatsiya qiladi. Feature tayyor bo'lib, code review'dan o'tgach, u develop'ga merge qilinadi va o'chiriladi.

📦 Release branch (release/*)
develop'da keyingi versiya uchun kerakli feature'lar yig'ilgach, men release/v1.1.0 kabi yangi release branch'ini yarataman. Bu branch'da faqat release'ga tayyorgarlik ishlari qilinadi: oxirgi bug'lar tuzatiladi, dokumentatsiya yangilanadi, versiya raqami o'zgartiriladi. Yangi feature qo'shilmaydi.
Release tayyor bo'lgach, u bir vaqtning o'zida:
- main'ga merge qilinadi va tag bilan belgilanadi (bu endi production'dagi kod).
- develop'ga ham merge qilinadi (chunki release branch'da qilingan o'zgarishlar develop'da ham bo'lishi kerak).
Keyin bu release branch ham o'chiriladi.

🔥 Hotfix branch (hotfix/*)
Tasavvur qiling, production'da shoshilinch bug chiqib qoldi va uni darhol tuzatish kerak. Bunday paytda men develop'ga tegmasdan, to'g'ridan-to'g'ri main'dan hotfix/task-212-login-bug kabi branch ochaman. Bug tuzatilgach, bu hotfix branch xuddi release kabi ham main'ga, ham develop'ga merge qilinadi. Bu develop'da eski bug'ning qayta paydo bo'lishining oldini oladi.



Xulosa qilib aytganda, bu workflow kodni toza saqlashga, jamoaviy ishni tartibga solishga va release'larni oson boshqarishga yordam beradi. Loyihangiz biroz murakkablashishi bilan uning afzalliklarini seza boshlaysiz.

Siz o'z loyihalaringizda qanday Git branching strategy'sidan foydalanasiz? Izohlarda tajribangiz bilan bo'lishing! 👇

@mabrur_dev
  • 👍 38
  • 🔥 1
More from @mabrur_dev
  1. Oct 9, 2026Elevenlabs V4 - Professional Voice Cloning
  2. Oct 5, 2026Claude bilan o'tirib ishim uchun kerakli xitoycha modellar bo'yicha research qilgandim, sh…
  3. Oct 4, 2026Nomi g'alati eshitilishi mumkin, lekin jev ustiga yaxshi tool yasashibdi. Ayniqsa minglab…
  4. Oct 4, 2026Efirda tanaffus ) Ko'chadagi havoga shu ketadiyu, nima deysilar 😅
  5. Oct 3, 2026Do'stlarimiz yangi platformaga asos solishibdi. Platformada siz SAT imtihonlariga tayyorla…
  6. Oct 1, 2026Men anchadan beri birga ishlaydigan kompaniyam founderi YouTube’da juda yaxshi podcastlar…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →