Yolg'iz ishlayotganda Git'ning faqat commit va push buyruqlarini bilish yetarli. Lekin jamoada ishlash boshlanishi bilan branch va merge zarur bo'lib qoladi. Bu maqolada branch nima, nega kerak, qanday ishlatish va conflict chiqsa nima qilish kerakligini amaliy misol bilan ko'rsatamiz.
Branch nima — oddiy misol
Tasavvur qiling, loyiha main — bu asosiy va ishlaydigan kod. Siz yangi "to'lov tizimi" funksiyasini qo'shmoqchisiz. Agar to'g'ridan-to'g'ri main'da ish qilsangiz — xato yuzsangiz, hamma ko'radi.
Branch — main'dan nusxa olib, alohida ishlash. Tayyor bo'lgach, main'ga qo'shiladi.
main: A---B---C
\
to'lov-tizim: D---E---F
Branch yaratish va o'tish
# Yangi branch yarating va o'ting (qisqa usul)
git checkout -b funksiya/tolov-tizimi
# Yoki yangi usul (Git 2.23+)
git switch -c funksiya/tolov-tizimi
# Mavjud branch'lar ro'yxati
git branch
# Boshqa branch'ga o'tish
git checkout main
git switch main
Branch'da ishlash va saqlash
# Kod yozing, keyin saqlang
git add .
git commit -m "To'lov formasi qo'shildi"
git commit -m "To'lov API ulandi"
git commit -m "To'lov xatoliklarini qayta ishlash"
# GitHub'ga yuklash
git push origin funksiya/tolov-tizimi
Merge — branch'larni birlashtirish
# main'ga o'ting
git checkout main
# Oxirgi o'zgarishlarni yuklab oling
git pull origin main
# Branch'ni birlashtiring
git merge funksiya/tolov-tizimi
# GitHub'ga yuboring
git push origin main
Conflict — nima va qanday hal qilish
Conflict — ikki kishi bir xil faylning bir xil qatorini o'zgartirgan paytda yuzaga keladi.
# Conflict bo'lganda Git shunday ko'rsatadi:
<<<<<<< HEAD (main'dagi versiya)
const tolovSumma = 10000;
=======
const tolovSumma = 15000;
>>>>>>> funksiya/tolov-tizimi (branch'dagi versiya)
Hal qilish: 1. Faylni oching 2. Kerakli qatorni qoldiring, qolganini o'chiring (<<<, ===, >>> belgilarni ham) 3. Saqlang va commit qiling
git add .
git commit -m "Conflict hal qilindi"
Ko'p uchraydigan xatolar
Xato 1: main'da to'g'ridan-to'g'ri ishlash. Har doim yangi funksiya uchun branch oching.
Xato 2: Bir branch'da bir nechta funksiya qilish. Har bir funksiya uchun alohida branch — bu tartibni saqlaydi.
Xato 3: Merge qilishdan oldin git pull qilmaslik — eskirgan koddan ishlaganingiz conflict'larni ko'paytiradi.
Maslahat: Branch nomlashda yaxshi urf bo'lgan qoida:
funksiya/nima-qilinayapti,tuzatish/qaysi-xato,refaktoring/nima. Masalan:funksiya/login-sahifa,tuzatish/login-xatosi.
+0
+0
+0
+0
+0
+0
+0