Published on

Git: Pull Request yaratish va code ko'rib chiqish

Authors

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:

  1. Branch yaratasiz va o'zgarishlar qilasiz
  2. Merge so'rovi yaratasiz β€” bu PR
  3. Jamoangiz PR-ni ko'rib chiqadi, izoh qoldiradi, tasdiqlaidi
  4. 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:

  1. main-dan yangi branch oling
  2. O'zgarishlar qiling va commit qiling
  3. 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

  1. Source Control panelida joriy branchni toping
  2. Branch ustiga o'ng tugma β†’ Create Pull Request
  3. Maqsadli branch tanlang (ko'pincha main)
  4. Sarlavha va tavsif yozing
  5. Publish tugmasini 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:

TanlovMa'no
CommentFaqat izoh, tasdiqlash yoki rad etish yo'q
ApproveKod tayyor, merge qilish mumkin
Request changesO'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.

MergeSquash and Merge
TarixBarcha commit-lar saqlanadiBitta commit
Toza tarixYo'qHa
Kichik loyihaβœ…βœ…
Katta jamoaβœ…βœ… (ko'proq tavsiya etiladi)

PR merge qilingandan keyin

  1. Branch remote-da o'chirilishi mumkin (GitHub o'zi taklif qiladi)
  2. Local versiyani ham o'chiring: Source Control β†’ branch ustiga o'ng tugma β†’ Delete
  3. main branchga o'ting va pull qiling β€” 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 pull qilinadi

Keyingi darsda professional PR shablonlari va jamoada PR jarayonini to'g'ri yo'lga qo'yish ko'rib chiqiladi.

Buy mea coffee