- Published on
Git: Pull Request yaratish va code ko'rib chiqish
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Git: Pull Request (PR)
Pull Request (PR) β bitta branchni boshqasiga birlashtirish uchun rasmiy so'rov. Shaxsiy loyihalarda kerak emas, lekin jamoada ishlashda PR β kodingizni boshqa muhandis ko'rib chiqishi va tasdiqlashi uchun asosiy mexanizm.
PR nima va nima uchun kerak?
Oddiy merge-da siz o'z o'zgarishlaringizni darhol main-ga birlashtirasiz. PR-da esa siz:
- Branch yaratasiz va o'zgarishlar qilasiz
- Merge so'rovi yaratasiz β bu PR
- Jamoangiz PR-ni ko'rib chiqadi, izoh qoldiradi, tasdiqlaidi
- Tasdiqlangach, merge qilinadi
PR aslida "merge request" bo'lishi kerak edi β lekin merge qilishning bir necha usuli (merge, squash and merge va boshqalar) bo'lgani uchun "pull request" deb ataladi.
PR tayyorlash
PR yaratishdan avval:
main-dan yangi branch oling- O'zgarishlar qiling va commit qiling
- Branchni remote-ga push qiling β PR faqat remote branchlar uchun yaratiladi
main β ns/add-settings-view branch β commit β push β PR yaratish
Xcode-da PR yaratish
- Source Control panelida joriy branchni toping
- Branch ustiga o'ng tugma β
Create Pull Request - Maqsadli branch tanlang (ko'pincha
main) - Sarlavha va tavsif yozing
Publishtugmasini bosing
PR GitHub-da avtomatik paydo bo'ladi.
GitHub-da PR yaratish
Branch push qilingandan so'ng GitHub-da "Compare & pull request" tugmasi chiqadi. Yoki Pull requests bo'limidan New pull request orqali yaratiladi.
PR tavsifi β nima yozish kerak?
Yaxshi PR tavsifi ko'rib chiquvchiga vaqt tejaydi. Minimal tavsiya:
- Nima o'zgardi β bir jumla bilan
- Nima chalkash ko'rinishi mumkin β va nima uchun shunday qilingan
- Nima haqida ishonchsizlik bor β senior dasturchi e'tiborini qaratishi kerak bo'lgan joy
Keyingi darsda jamoa uchun PR shablonlari ko'rib chiqiladi.
Kod ko'rib chiqish (Code Review)
PR yaratilgandan so'ng jamoangiz kodingizni ko'rib chiqadi. Bu jarayon GitHub yoki Xcode-da bajarilishi mumkin.
Izoh qoldirish β Comment
Muayyan qator yonidagi + belgisini bosib izoh qoldiriladi:
"Bu ishlaydi, lekin biz bu nomlash konvensiyasini ishlatmaymiz.
Iltimos, 'doSomething' ni 'isPremium' deb o'zgartiring."
Izohlar β erkin muhokama uchun. Yangi topilgan narsa, savol yoki taklif bo'lishi mumkin.
Rasmiy ko'rib chiqish β Review
Review β oddiy izohdan kuchli. Review boshlanganda o'zgarishlar "pending" (kutilmoqda) holatiga o'tadi. PR egasi barcha review izohlarini hal qilmagunicha merge qilib bo'lmaydi.
Review yakunida uchta tanlov:
| Tanlov | Ma'no |
|---|---|
| Comment | Faqat izoh, tasdiqlash yoki rad etish yo'q |
| Approve | Kod tayyor, merge qilish mumkin |
| Request changes | O'zgartirishlar kerak, keyin qayta ko'rib chiqiladi |
Muhim: PR muallifi o'z PR-ini approve qila olmaydi β bu GitHub-da texnik jihatdan bloklangan.
Izohlarni hal qilish
Har bir izoh hal qilingandan so'ng Resolve conversation bosiladi. Barcha izohlar hal qilinib, jamoadan "Approve" olingandan so'ng merge imkoniyati ochiladi.
Merge va Squash and Merge
PR tasdiqlanganda ikki asosiy merge usuli:
Merge
Branchdagi barcha commit-lar tarixda saqlanib qoladi. Qachon qaysi commit qilingani ko'rinadi. Kichik jamoalar yoki commit tarixi muhim bo'lganda qo'llanadi.
Squash and Merge
Branchdagi barcha commit-lar bitta commit-ga birlashtiriladi, keyin main-ga qo'shiladi. Tarix toza bo'ladi β feature uchun faqat bitta commit. Katta jamoalarda tez-tez qo'llanadi.
| Merge | Squash and Merge | |
|---|---|---|
| Tarix | Barcha commit-lar saqlanadi | Bitta commit |
| Toza tarix | Yo'q | Ha |
| Kichik loyiha | β | β |
| Katta jamoa | β | β (ko'proq tavsiya etiladi) |
PR merge qilingandan keyin
- Branch remote-da o'chirilishi mumkin (GitHub o'zi taklif qiladi)
- Local versiyani ham o'chiring: Source Control β branch ustiga o'ng tugma β
Delete mainbranchga o'ting vapullqiling β merge o'zgarishlari local-ga tusadi
Umumiy PR jarayoni
1. main-dan branch oling
2. O'zgarishlar qiling va commit qiling
3. Remote-ga push qiling
4. PR yarating (Xcode, GitHub yoki Git Kraken orqali)
5. Jamoadosh PR-ni ko'rib chiqadi, izoh qoldiradi
6. Izohlarni hal qiling va kerak bo'lsa o'zgartirish qiling
7. Jamoadosh Approve beradi
8. Merge yoki Squash and Merge
9. Branchni o'chiring (local + remote)
10. main-ni pull qiling
Xulosa
Bu darsda o'rganildi:
- PR β branchni birlashtirishdan oldin jamoaning kodingizni ko'rib chiqishi uchun rasmiy so'rov
- PR Xcode, GitHub yoki Git Kraken orqali yaratiladi
- Yaxshi PR tavsifida: nima o'zgardi, nima chalkash, nima haqida shubha bor
- Comment β erkin muhokama; Review β rasmiy tasdiqlash yoki rad etish
- PR muallifi o'z PR-ini approve qila olmaydi
- Merge β commit tarixi saqlanadi; Squash and Merge β bitta commit, toza tarix
- Merge qilingandan so'ng branch o'chiriladi va main
pullqilinadi
Keyingi darsda professional PR shablonlari va jamoada PR jarayonini to'g'ri yo'lga qo'yish ko'rib chiqiladi.