Uyga vazifa
Har bir vazifa 20–30 daqiqa. Parol, shaxsiy token, maxfiy kalit va shaxsiy ma'lumotlarni repozitoriyga yozmang: topshirishda faqat ochiq GitHub repo yoki Pull Request havolasi kerak.
4-dars uchun (Branching va Conventional Commits)
1-topshiriq: «GitHub Flow va Semantik commitlar»
- O'z portfolio repozitoriyangizda
feature/user-profile nomli yangi tarmoq oching. - Kamida 3 ta mustaqil commit qiling. Commit xabarlari qat'iy Conventional Commits spetsifikatsiyasi asosida bo'lsin:
feat(profile): add avatar upload and bio fieldfix(profile): validate image file format and max sizedocs(readme): document profile setup and requirements
- Terminalda
git log --oneline --graph buyrug'ini ishga tushiring va xabarlar aniq, semantik tartibda chiqqanini tekshiring. - Ushbu branch'ni GitHub'ga push qiling (
git push -u origin feature/user-profile).
Kutiladigan natija: GitHub'da yangi feature/user-profile tarmog'i mavjud; commit xabarlari standart talablariga to'liq javob beradi.
Topshirish: GitHub tarmog'i havolasi yoki commitlar tarixi skrinshoti.
5-dars uchun (Pull Request va Merge Konfliktlari)
2-topshiriq: «Mukammal PR va sun'iy konfliktni yechish»
feature/user-profile tarmog'idan main tarmog'iga qarab rasmiy Pull Request oching.- PR tavsifini What / Why / How professional shabloni bo'yicha to'ldiring:
- What: Qanday o'zgarishlar kiritildi?
- Why: Bu o'zgarish nima uchun kerak (muammo yoki vazifa)?
- How: Texnik yechim qanday amalga oshirildi?
- Skrinshot yoki test natijasi ilova qiling.
- Ataylab merge konflikti hosil qiling:
main da ham, feature/user-profile da ham bitta faylning ayni bir qatorini o'zgartirib commit qiling. - Konflikt belgilarini (
<<<<<<<, =======, >>>>>>>) o'chirib, toza yechimni saqlang va commit qilib PR ni yangilang.
Kutiladigan natija: Tavsifi to'liq, skrinshotli, nizosiz (Able to merge) yashil holatdagi Pull Request.
Topshirish: GitHub Pull Request havolasi.
6-dars uchun (Code Review va Branch Protection)
3-topshiriq: «Branch Protection va Taklif kodi»
- Repozitoriyangiz sozlamalariga kiring (
Settings → Branches) va main tarmog'i uchun himoya qoidasini yoqing: Require a pull request before merging (to'g'ridan-to'g'ri push taqiqlansin);Require approvals: 1 (kamida 1 ta tasdiq talab qilinsin).
- Terminalda
main tarmog'ida turib to'g'ridan-to'g'ri push qilib ko'ring va GH006: Protected branch xatoligini oling. - Do'stingiz (yoki mentor) ochgan PR ga kiring:
- Kod diff'idan bitta qatorni tanlab inline sharh qoldiring;
- Kamida 1 ta
suggestion bloki orqali to'g'rilangan kod taklifini taqdim eting; - Agar xatolik bo'lmasa
Approve, aks holda Request changes tugmasini bosing.
Kutiladigan natija: main tarmog'i himoyalangan, to'g'ridan-to'g'ri push bloklanadi; PR sahifasida konstruktiv inline sharh va bir bosishda qabul qilinuvchi code suggestion mavjud.
Topshirish: Sozlangan Branch Protection sahifasi skrinshoti va yozilgan review/suggestion havolasi (yoki skrinshoti).