Fork va Pull Request — ochiq kodli loyihalarga hissa qo’shishning asosiy mexanizmi. Boshqa birovning loyihasini to’g’ridan-to’g’ri o’zgartira olmaysiz — avval uni “fork” qilib, o’z nusxangizni olasiz, o’zgartirasiz, so’ng “Pull Request” orqali o’zgarishni asl loyihaga taklif qilasiz. Bu GitHub’dagi hamkorlikning yuragidir.
Fork va Pull Request — Fork — boshqa loyihaning o’z hisobingizdagi nusxasi. Pull Request (PR) — o’z o’zgarishlaringizni asl loyihaga qo’shishni taklif qiladigan so’rov.
Fork — loyiha nusxasini olish
Fork — GitHub’da boshqa birovning repozitariyasidan o’z hisobingizga to’liq nusxa yaratish. U veb-interfeysdagi “Fork” tugmasi orqali bajariladi. Fork qilingandan so’ng, uni o’z kompyuteringizga klonlaysiz:
git clone https://github.com/farrux/loyiha.git
cd loyiha
Cloning into 'loyiha'...
Endi sizda loyihaning o’z nusxangiz bor — uni bemalol o’zgartirishingiz mumkin, asl loyiha esa tegilmaydi.
O’zgarish kiritish
Fork qilingan loyihada o’zgarish kiritish uchun odatda yangi tarmoq yaratiladi:
git switch -c xato-tuzatish
git commit -am "Nol bo'lish xatosi tuzatildi"
git push -u origin xato-tuzatish
* [new branch] xato-tuzatish -> xato-tuzatish
Yangi tarmoqda o’zgarish kiritib, uni o’z fork’ingizga (origin) yubordik. Endi bu o’zgarishni asl loyihaga taklif qilish mumkin.
Pull Request yaratish
Pull Request (PR) — o’zgarishlaringizni asl loyihaga qo’shishni so’raydigan taklif. U GitHub veb-interfeysida yaratiladi. PR jarayonini jadvalda ko’ramiz:
| Bosqich | Amal |
|---|---|
| 1 | Fork’ga push qilinadi |
| 2 | GitHub’da “Compare & pull request” |
| 3 | Tavsif yozib, PR yaratiladi |
| 4 | Loyiha egasi ko’rib chiqadi (review) |
| 5 | Tasdiqlansa, main ga birlashtiriladi (merge) |
Hamkorlik jarayoni
Fork va PR ochiq kodli dunyoning ishlash tamoyilidir. Siz yoqtirgan loyihaga xato tuzatish yoki yangi funksiya taklif qilasiz; loyiha egasi uni ko’rib chiqadi, izoh beradi va yaxshi bo’lsa qabul qiladi. Bu jarayon orqali minglab dasturchi bir loyihaga birga hissa qo’shadi.
Muhim: PR tavsifi aniq bo’lsin — nima o’zgartirilgani va nega kerakligini tushuntiring. Bu loyiha egasiga PR ni tez tushunish va qabul qilishga yordam beradi.
Fork’ni yangilash
Asl loyiha yangilanib turadi. Fork’ingizni yangilash uchun asl loyiha “upstream” sifatida qo’shiladi:
git remote add upstream https://github.com/uzbekdevs/loyiha.git
git pull upstream main
From https://github.com/uzbekdevs/loyiha
* branch main -> FETCH_HEAD
Already up to date.
upstream — asl loyihaning manzili. pull upstream main esa uning yangilanishlarini fork’ingizga oladi. Bu fork’ni dolzarb saqlashning usuli.
Xulosa
Bu bo’limda Fork bilan loyiha nusxasini olish, o’zgarish kiritish, Pull Request yaratish va upstream bilan fork’ni yangilashni ko’rib chiqdik. Fork va PR — ochiq kodli hamkorlikning asosidir. Keyingi darsda git stash bilan o’zgarishlarni vaqtincha yashirishga o’tamiz.