Yuzlab muhandis bitta loyihada bir-biriga xalaqit bermasdan qanday ishlaydi?
11-sinfProfessional IT development2-hafta · 4-darsNega main ga to'g'ridan-to'g'ri yozilmaydi va tarmoq qanday ishlaydi
Git Flow, GitHub Flow, Trunk-based: qachon qaysi biri
Atomik commit va Conventional Commits formati
Parallel dunyo: xato qilish xavfsiz bo'lgan joy
Merge belgisini bosing: izoh chiqadi.
Branch fayllar nusxasi emas, commitga ko'rsatuvchi yengil pointer. Pastga ↓
# yangi tarmoq ochish va unga o'tish
git switch -c feature/add-login
# eski sintaksis (xuddi shu)
git checkout -b feature/add-login
# ro'yxat va asosiy tarmoqqa qaytish
git branch ; git switch main
# ishi bitgan tarmoqni o'chirish
git branch -d feature/add-login
git commit -m "ishlar qilindi"
git commit -m "fix(auth): add password argument to login"
Git Flow, GitHub Flow, Trunk-based development
Tarmoq nomini bosing: vazifasi chiqadi. Qachon: relizlari kam, qat'iy sinovli tizimlar (antivirus, tibbiyot, bank).
Feature Flag nima? Pastga ↓
Relizlari kam, qat'iy sinov: antivirus, bank, tibbiy tizim.
Veb-loyiha va startap: bitta main, qisqa branchlar, tez deploy.
Yuqori tezlikdagi CI/CD, kuniga ko'p integratsiya, Feature Flags.
Production'da to'satdan xato chiqdi. Git Flow da qaysi tarmoq ochiladi?
Atomik commit va Conventional Commits
«ishlar qilindi va xatolar tuzatildi». Qaysi commit nimani buzganini topib bo'lmaydi, revert qilish xavfli.
Har commit tugallangan mantiqiy o'zgarish. Testlar har commitdan keyin ishlaydi, orqaga qaytarish oson.
Qismni bosing: ma'nosi chiqadi. Format: type(scope): description
Yangi imkoniyat
Xatoni tuzatish
Faqat hujjat
Build, paketlar
Yana 4 tur pastda ↓
Formatlash, mantiq o'zgarmaydi
Yangi funksiya ham, xato ham yo'q, kod tozalanadi
Tezlik yoki xotira
Testlar qo'shish
add, fix (added emas)feat!:v1.4.2 dan v2.0.0 ga o'tish signali (SemVer).
$ git log --oneline
f3a91c2 docs: update API endpoints in README
b72d4e0 fix: resolve crash on empty search query
a10c8d7 feat: add user login via google
9e4f6b1 chore: update dependencies
semantic-release versiya va CHANGELOG ni o'zi yozadi.Nomlash standarti va terminalda tarmoqlar
feature/telegram-bot: yangi imkoniyat
fix/header-logo: oddiy xato
hotfix/payment-crash: shoshilinch
test yoki yangi emas.git switch -c feat/user-authentication, fayl yarating va feat(auth): bilan commit qilingfix(auth): commitini qiling, main ga o'ting: fayl nega yo'qolganini tushuntiringgit log --graph --oneline --all --decorate ni tahlil qilingChala kod production'ga tushadi. Har vazifa uchun alohida branch.
O'tgan zamon va nuqta: fix: handle null value deb yozing.
Qaysi commit xabari Conventional Commits qoidasiga mos?
Branch pointer ekani, 3 strategiya, atomik commit va type(scope): description formati.
Pull Request madaniyati, PR shabloni, merge turlari va konfliktlar.