8 yashar bolaga Git va GitHubni qanday tushuntirgan bo‘lardingiz?

Bekhzod Akbarov

May 09, 2020

Dasturlash olamidek bepoyon dunyoga qadam qo‘ygan bo‘lsangiz, GitHub haqida eshitgan bo’lishingiz kerak. Barcha dasturchilar undan foydalanish kerakligini ta’kidlaydi chunki hamma undan foydalanadi va kelajakdagi ish beruvchingiz ham uni bilishingizni istagan bo‘lardi. Shu sababli, siz undan foydalanishni o‘ylab yurgan bo’lishingiz mumkin lekin uni qanday ishlatish xatto tushingizga ham kirmagan bo’lishi mumkin. Balkim bu nima texnologiyaligini bilishingiz mumkindir lekin uni aynan nima ekanligini tushuntirib bera olasizmi? Hozir “undan” va “uni” deb ko‘p gapirdik. Bunda GitHub’ni nazarda tutgan edik. Bundan tashqari GitHub’ga hamohang Git nomli texnologiya ham mavjud. Ular bir biridan umuman farqli texnologiyalar hisoblanadi.

Ushbu qisqagina maqolamizda, Git va GitHub texnologiyalari nimaligini 8 yoshli bolakayga tushuntirishga harakat qilgandek sizga tushintirishga urinib ko‘ramiz. 

 

Git

Tasavvur qiling, 8 yoshdasiz.

Lego konstruktorlari bilan o‘ynashni yaxshi ko‘rasiz. Legodan avtomobillar, velosipedlar, har hil binolar, qasrlar va qo‘rg‘onlar qurgansiz. Lekin lego bo‘laklaridan yig‘gan oyinchoqlaringizni har safar qayta buzib tashlab qaytib qutichasiga solib qo‘yishingizga to‘g‘ri kelgan, chunki oyingiz mehmohonadami yoki boshqa honadami yig‘ilgan o‘yinchoqlaga joy yo‘qligini aytib kelgan.

Ammo kunlarning birida, oyingiz sizga yig‘gan Lego o‘yinchoqlaringizni bir joyda saqlash uchun shkaf olib berdi. Shu kundan boshlab har qanday yig‘gan o‘yinchog‘ingizni qayerda saqlashga bosh qotirib o‘tirmaydigan bo‘ldingiz. Yasagan Lego loyihalaringizga nom berish uchun oyingiz sizga xattoki stikerlar(yopishtiradigan yorliqlar) berdi. Aynan shu shkafni Git deb tassavur qilsangiz bo‘ladi. Yaratgan har bir loyihalaringizni kompyuteringizda(uyingizda) mavjud qattiq diskga saqlab qo‘yib, Git’dan(shkafdan) foydalangan holda yozgan kodingiz nima vazifalar bajarishini izohlab ketish imkoniyatiga ega bo‘lasiz. 

git add  buyrug‘i Legodan yasagan o‘yinchoqlaringizni shkaf (Git) ga joylashtirishni amalga oshiradi.

 git commit  buyrug‘i esa Legodan yig‘ilgan kashfiyotlaringizni shkafga uzoq muddatga saqlab qo‘yadi. Ushbu buyrug‘ni opa va ukalaringizga “Lego o‘yinchoqlarimga tegma!” degan jiddiy ogohlantirishdek ham tassavvur qilsangiz bo‘ladi.

 

Github

Endi esa, aytaylik, tug‘ilgan kuningizga oyingiz sizga juda katta Lego to‘plamini olib berdi va bu to‘plam orqali sizda butun boshli Toshkent shahrini qurish imkoniyati mavjud. Bu bitta boshingiz uchun qanchalik qiyin ekanligini tassavvur qilib ko‘rdingizmi? Yakka o‘zingiz Lego to‘plamingiz bilan Toshkentdek katta shaharni qurishingiz uchun bir necha yillab vaht sarflasangiz ham yetmasligi mumkin. Shuning uchun, oyingizga sizga yordam berish uchun o‘rtoqlaringizni chaqirib birgalikda Toshkent shahrini qurishni etasiz. Lekin oyingiz uyingizda hamma narsalarni har qayoqqa sochib tartibsizlik bo‘lishini umuman istamaydi. Shu sababli siz do‘stlaringiz bilan Lego to‘plamini olgan holda yaqin oradagi parkga yo‘l olasizlar va parkda buyuk ishlaringizdan biriga qo‘l urasizlar.  Aynan shu park GitHubning “Hub” qismi hisoblanadi. Yozgan kodingizni yoki Lego to‘plamlaringizni GitHubga olib borib barcha do’stlaringiz bilan baham ko‘rasiz va qarabsizki birgalikda rejalashtirgan Lego to‘plamlaridan iborat Toshkent shahrini birgalikda qisqa muddatda qurib tugatasizlar. 

git remote add origin https://github.com/SIZNING-GITHUBDAGI-ISMINGIZ/legos

 

Kodingizni ishlatmoqchi bo‘lgan boshqa foydalanuvchilar, GitHub’dan kodingizni “fork” qilishadi, yani undan o’zlarining GitHub’iga nuxsa ko’chirishadi.  Buni shunday tasavvur qilsangiz bo’ladi: sizga notanish bo‘lgan bolalarga Lego to‘plamingizni berib turibsiz va ular bu yo‘l bilan o‘zlari istagan narsani yaratishi mumkin, lekin berib turgan taqdirda ham, siz Lego to‘plamlaringizni yoqotmaysiz. Ulardan boshqa o‘rtoqlaringiz klon qilib olishadi deb hisoblasangiz ham bo‘ladi. GitHub’da mavjud ochiq manbaga ega loyiha kodlaridan quyidagi buyruq orqali esa kompyuteringizni qattiq diskiga nusxa olishingiz mumkin. 

 

git clone https://github.com/SIZNING-GITHUBDAGI-ISMINGIZ/legos

 

Ajoyib emasmi? Endillikda 8 yoshlik tengqurlariz siz yig‘֥ayotgan Lego to‘plamini siz bilan birgalikda masofadan turgan holda yig‘ishi mumkin. Bir do‘stingiz Tosheknt shahrining turar joy binolarini qursa, ikkinchisi esa ofis uchun mo‘ljallangan binolar ustidan ish olib boradi. Va barcha do‘stlaringiz o‘zlarining Lego bo‘laklarini bir joyga birlashtirganda, yakunlangan va to‘liq Lego to‘plamiga ega bo‘lasizlar. Ushbu jarayonni, ya’ni lego bo‘laklarini bir joyga to‘plash, GitHub tilida kodni “push” qilish deb ataladi. Haqaqiy GitHub hayotida esa, hamkasblaring yozgan kodlarini va o‘zgarishlarni mavjud loyihaga izohlari bilan “push” qilishadi.

git push origin master

Hamkasblaringiz o‘z kodlarini “push” qilgandan keyin, siz qilingan o‘zgarishlarni ko‘rishingiz va birgalikda ishlayotgan loyihangizga kiritish uchun ularni “pull” qilib olishingiz kerak. “Pull” qilish orqali, do’stlaringiz Lego bo‘laklaridan nimalar yasaganligini ko’rasiz va sizga yoqsa ularni qabul qilasiz, yoqmasa esa aksini qilasiz. 

 

Xulosa o’rnida…

GitHub’ni qisqa qilib yoritganimiz shu bo‘ladi. Yozilgan kodni “push” va “pull” qilish ingliz tilida “version control” deb nomalandi, o’zbekchaga ma’no jihatdan tarjima qilsak “qilinayotgan loyihadagi o‘zgarishlarni nazorat qilish” desak ham bo‘ladi. Git texnologiyasi yozgan kodingizdagi o‘zgargan har bir harf va har bir qatorni kuzatib boradi. GitHub’ga esa “commit” qilgan ya’ni saqlagan o’zgarishlaringizni yuklaysiz va shu tarzda barcha hamkasblaringiz qilingan o’zgarishlarni kuzatib boradi hamda loyihaga o’zining hissasini qo‘shib boradi.

Albatta Git va GitHub haqida hali ancha ko‘p narsa bilib olishingiz kerak. Ushbu maqolamizda faqatgina aysbergni uchini ko‘rsatib o‘tdik. Aysbergning qolgan qismini o‘rganishingiz uchun quyida foydali manbalarni siz bilan baham ko‘rishamiz.

Manbalar

GitHub’dan foydalanish uchun GitHub hamjamiyatining qo‘llanmasi: 

https://guides.github.com/activities/hello-world/

 Git va Github’ni o‘rgatuvchi video qo‘llanma

 https://www.youtube.com/watch?time_continue=211&v=SWYqp7iY_Tc

 Boshlovchilar uchun qo‘llanma(Git texnologiyasini kompyuteringizga o‘rnatish to‘g֥‘risida):

 https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners