Davlat ro'yxatidan o'tgan nodavlat notijorat tashkilot 1052p-son guvohnoma

Maqolalar

Git va GitHub asoslari: boshlovchilar uchun qo'llanma

11 daqiqa o'qish

Git va GitHub nima, ular qanday farq qiladi: o'rnatish, commit, branch, push va pull, konfliktlarni hal qilish, GitHub Pages va xavfsizlik qoidalari.

Dasturlashni o’rganayotgan har bir kishi tez orada ikki so’zni eshitadi: Git va GitHub. Ish e’lonlarida ham “Git bilan ishlay olish” talabi deyarli doim uchraydi. Bu qo’llanmada versiyalarni boshqarish nima uchun kerakligini, Git va GitHub farqini, o’rnatish va sozlashni, asosiy tushunchalarni, birinchi repozitoriyni bosqichma-bosqich yaratishni, GitHub’ga yuklash va undan olishni, branch, Pull Request va konfliktlarni ko’rib chiqamiz. Keyin GitHub’ni portfolio sifatida ishlatish, xavfsizlik qoidalari va keng tarqalgan xatolarni tahlil qilamiz. Oxirida amaliy mashq va tekshiruv ro’yxati bor. Barcha buyruqlar haqiqiy — ularni terminalda o’zingiz sinab ko’rishingiz mumkin.

Versiyalarni boshqarish nima uchun kerak

Kompyuteringizda “kurs_ishi_yakuniy”, “kurs_ishi_yakuniy_v2”, “kurs_ishi_yakuniy_v2_eng_oxirgi” kabi fayllar bormi? Bu juda keng tarqalgan muammo: qaysi nusxa haqiqatan oxirgisi, ular orasida nima o’zgargani va kecha o’chirib yuborilgan abzats qayerda qolgani noma’lum. Fayllarni tartibga solish haqidagi maqolada bu muammoning oddiy yechimlarini ko’rgan edik. Kod va matnli loyihalar uchun esa undan kuchliroq vosita bor — versiyalarni boshqarish tizimi.

Versiyalarni boshqarish tizimi loyihangizning har bir saqlangan holatini eslab qoladi: kim, qachon, nimani va nima uchun o’zgartirgani yoziladi. Istalgan vaqtda oldingi holatga qaytish, ikki versiyani solishtirish yoki bir nechta odam bitta loyiha ustida bir-birining ishini buzmasdan ishlash mumkin bo’ladi.

Git va GitHub farqi

Bu ikki nom ko’pincha aralashtiriladi, lekin ular turli narsalar:

  • Git — kompyuteringizga o’rnatiladigan bepul dastur. U internetsiz ham ishlaydi va loyiha tarixini sizning kompyuteringizda saqlaydi.
  • GitHub — Git repozitoriylarini internetda saqlash va ular ustida birga ishlash uchun veb-xizmat. Unda kodni ko’rish, muhokama qilish, jamoa bilan ishlash va hatto oddiy saytni joylashtirish mumkin.

Oddiy o’xshatish: Git — bu kamera, GitHub esa suratlarni saqlaydigan va do’stlar bilan ulashadigan onlayn albom. Kamerasiz albom bo’sh, albomsiz esa suratlar faqat bitta qurilmada qoladi. GitHub yagona xizmat emas — GitLab va Bitbucket ham bor, lekin boshlovchilar uchun eng keng tarqalgani GitHub.

O’rnatish va boshlang’ich sozlash

Git’ni rasmiy saytdan — git-scm.com dan yuklab oling.

  • Windows. O’rnatuvchini ishga tushiring; boshlovchi uchun standart sozlamalar yetarli. O’rnatishdan keyin Start menyusida Git Bash paydo bo’ladi — bu maqoladagi buyruqlarni aynan unda yozing.
  • macOS. Terminalda git --version yozing. Git bo’lmasa, tizim kerakli vositalarni o’rnatishni taklif qiladi.
  • Linux (Ubuntu). sudo apt install git buyrug’i bilan.

O’rnatilganini tekshiring va o’zingizni tanishtiring. Ism va email har bir commit’ga yoziladi, shuning uchun ularni bir marta to’g’ri sozlang:

git --version
git config --global user.name "Bekzod Karimov"
git config --global user.email "bekzod@example.com"
git config --global init.defaultBranch main

Oxirgi qator haqida izoh. Ilgari asosiy branch avtomatik ravishda master deb atalardi. Bugun GitHub va ko’pchilik loyihalar main nomini ishlatadi. Shu sozlama bilan yangi repozitoriylaringiz darhol main bilan boshlanadi. Eski qo’llanmalarda master ni ko’rsangiz, bu o’sha narsa, faqat eski nom.

Asosiy tushunchalar oddiy tilda

To’rtta tushunchani tushunsangiz, Git’ning qolgan qismi oson o’zlashtiriladi.

  • Repozitoriy (repository, qisqasi repo) — loyiha papkasi va uning butun tarixi. Tashqaridan oddiy papka, lekin ichida yashirin .git papkasi bor — tarix aynan shu yerda saqlanadi. Uni qo’lda o’chirmang.
  • Commit — loyihaning ma’lum paytdagi “surati” va unga yozilgan qisqa izoh. O’yindagi saqlash nuqtasiga o’xshaydi: xato qilsangiz, o’sha nuqtaga qaytasiz.
  • Branch (tarmoq) — loyihaning parallel ish yo’li. Asosiy yo’l (main) tegmay turadi, siz esa alohida branch’da yangi g’oyani sinab ko’rasiz. Natija yoqsa — asosiy yo’lga qo’shasiz, yoqmasa — tashlab yuborasiz.
  • Remote (masofaviy repozitoriy) — internetdagi nusxa, masalan GitHub’dagi repozitoriy. Odatda u origin deb nomlanadi.

Yana bir muhim g’oya — tayyorlov maydoni (staging area). Git o’zgargan hamma narsani avtomatik saqlamaydi. Avval git add bilan qaysi o’zgarishlar keyingi commit’ga kirishini tanlaysiz, keyin git commit bilan suratga olasiz. Xuddi sumkaga narsalarni tanlab solib, keyin yopganingiz kabi.

Birinchi repozitoriy: bosqichma-bosqich

Bekzod — universitet talabasi, kurs ishini Markdown formatidagi matnli faylda yozmoqda. U har bir bobni yozib bo’lgach, holatni saqlab borishni xohlaydi. Uning yo’li bilan yuramiz.

1-qadam. Papka yaratish va repozitoriyni boshlash.

mkdir kurs-ishi
cd kurs-ishi
git init

git init papka ichida bo’sh repozitoriy yaratadi. Bu buyruq har bir loyiha uchun faqat bir marta beriladi.

2-qadam. Holatni ko’rish. Bekzod papkada hisobot.md faylini yaratib, kirish qismini yozadi. Keyin:

git status

git status — eng ko’p ishlatiladigan buyruq. U qaysi fayllar yangi, qaysilari o’zgargan va qaysilari commit’ga tayyorligini ko’rsatadi. Nima qilishni bilmay qolsangiz, avval shu buyruqni yozing.

3-qadam. O’zgarishni tayyorlash va commit qilish.

git add hisobot.md
git commit -m "Kirish qismini yozish"

Barcha o’zgargan fayllarni birdan qo’shish uchun git add . ishlatiladi (nuqta — joriy papka degani). Lekin undan oldin git status bilan nima qo’shilayotganini ko’rib oling.

4-qadam. Tarixni ko’rish.

git log --oneline

Har bir commit bitta qatorda ko’rinadi: qisqa kod (identifikator) va izoh. Oxirgi commit’dan keyin nima o’zgarganini ko’rish uchun git diff yoziladi.

Yaxshi commit xabari

Commit xabari — kelajakdagi o’zingizga yoki hamkasbingizga xat. “o’zgarishlar”, “tuzatdim” yoki “asdf” hech narsa demaydi. Yaxshi xabar:

  • qisqa, taxminan 50 belgigacha;
  • nima qilinganini aytadi: “2-bobga manbalar ro’yxatini qo’shish”;
  • bitta mantiqiy o’zgarishni tasvirlaydi — ikki xil ish bo’lsa, ikkita commit qiling;
  • jamoada bitta tilda va bitta uslubda yoziladi.

.gitignore fayli

Ba’zi fayllar repozitoriyga kirmasligi kerak: vaqtinchalik fayllar, tizim fayllari, kutubxona papkalari va eng muhimi — parol va maxfiy kalitlar. Ularni loyiha ildizidagi .gitignore fayliga yozasiz:

# .gitignore fayli namunasi
.env
node_modules/
*.log
.DS_Store
Thumbs.db

Diqqat: .gitignore faqat hali Git kuzatmayotgan fayllarga ta’sir qiladi. Agar fayl allaqachon commit qilingan bo’lsa, uni git rm --cached fayl_nomi bilan kuzatuvdan chiqarib, keyin commit qilish kerak.

GitHub bilan ishlash: push, clone, pull

Akkaunt va repozitoriy yaratish

  1. github.com saytida Sign up orqali ro’yxatdan o’ting. Foydalanuvchi nomini jiddiy tanlang — u kelajakda portfolio manzilingiz bo’ladi.
  2. O’ng yuqoridagi + belgisini bosib, New repository ni tanlang.
  3. Nom kiriting (masalan, kurs-ishi), Public yoki Private ni tanlang. Kompyuterdagi repozitoriyni yuklamoqchi bo’lsangiz, “Add a README file” belgisini qo’ymang — repozitoriy bo’sh bo’lsin.
  4. Create repository ni bosing. GitHub sizga repozitoriy manzilini ko’rsatadi.

Kompyuterni GitHub bilan bog’lash va yuklash

git remote add origin https://github.com/bekzod-karimov/kurs-ishi.git
git push -u origin main

git remote add internetdagi nusxani origin nomi bilan ro’yxatga oladi. git push commit’larni GitHub’ga yuboradi; -u esa bog’lanishni eslab qoladi, keyingi safar shunchaki git push yozish yetarli. Agar branch’ingiz hali master deb atalsa, avval git branch -M main bilan nomini o’zgartiring.

Kirish haqida: GitHub terminalda akkaunt parolini qabul qilmaydi. Windows’da Git bilan birga keladigan Git Credential Manager birinchi push paytida brauzer oynasini ochadi — o’sha yerda kirasiz. Boshqa tizimlarda parol o’rniga GitHub sozlamalarida yaratiladigan shaxsiy token (personal access token) yoki SSH kaliti ishlatiladi.

Boshqa kompyuterda ishlash: clone va pull

Bekzod universitet kompyuter xonasida ishlamoqchi. U repozitoriyni to’liq tarixi bilan yuklab oladi:

git clone https://github.com/bekzod-karimov/kurs-ishi.git

Ishni tugatgach, git add, git commit va git push qiladi. Uyga qaytgach, uy kompyuterida yangi o’zgarishlarni oladi:

git pull

Oltin qoida: ishni boshlashdan oldin git pull, tugatgandan keyin git push.

Branch, Pull Request va konfliktlar

Nilufar va Javlon kollej loyihasi uchun birgalikda kichik sayt qilmoqda. Nilufar “Biz haqimizda” sahifasini, Javlon esa aloqa formasini yozadi. Ikkalasi bitta main ustida ishlasa, bir-birining ishini buzib qo’yishi mumkin. Shuning uchun har biri o’z branch’ini ochadi.

Branch bilan ishlash

git switch -c biz-haqimizda
# fayllarni tahrirlash, keyin:
git add .
git commit -m "Biz haqimizda sahifasini qo'shish"
git switch main
git merge biz-haqimizda

git switch -c yangi branch yaratib, unga o’tadi. git switch main asosiy branch’ga qaytaradi, git merge esa branch’dagi o’zgarishlarni joriy branch’ga qo’shadi. Barcha branch’lar ro’yxatini git branch ko’rsatadi. Eski qo’llanmalarda git checkout -b uchraydi — u ham ishlaydi, lekin git switch tushunarliroq.

Pull Request g’oyasi

Jamoada branch’lar odatda kompyuterda emas, GitHub’da birlashtiriladi. Nilufar o’z branch’ini git push -u origin biz-haqimizda bilan yuklaydi va GitHub’da Compare & pull request tugmasini bosadi. Pull Request (PR) — “mening o’zgarishlarimni ko’rib chiqib, asosiy branch’ga qo’shinglar” degan so’rov. Javlon o’zgarishlarni qatorma-qator ko’radi, izoh qoldiradi, kerak bo’lsa tuzatish so’raydi. Hammasi joyida bo’lsa, Merge pull request bosiladi. Shunday qilib, main ga faqat ko’rib chiqilgan kod tushadi.

Konflikt va uni hal qilish

Ikkalasi bir faylning aynan bir qatorini turlicha o’zgartirsa, Git qaysi variant to’g’riligini o’zi hal qila olmaydi — bu konflikt deyiladi. Bu xato emas, oddiy holat. Masalan, ikkalasi ham index.html dagi sarlavhani o’zgartirgan. Birlashtirishda Git faylga belgilar qo’yadi:

<<<<<<< HEAD
<h1>Kollej loyihasi</h1>
=======
<h1>Bizning jamoa sayti</h1>
>>>>>>> biz-haqimizda

HEAD dan ======= gacha — joriy branch’dagi variant, undan pastda — qo’shilayotgan branch’dagi variant. Hal qilish tartibi:

  1. Faylni muharrirda oching va to’g’ri variantni qoldiring (yoki ikkalasini birlashtiring).
  2. <<<<<<<, ======= va >>>>>>> qatorlarini o’chiring.
  3. Saqlang, keyin git add index.html va git commit qiling.

Konfliktlarni kamaytirish uchun tez-tez git pull qiling, branch’larni qisqa yashovchi qiling va kim qaysi fayl ustida ishlayotganini kelishib oling.

GitHub portfolio sifatida va xavfsizlik

README va GitHub Pages

Ish beruvchi ko’pincha rezyumedagi GitHub havolasini ochib ko’radi. Har bir loyihaga README.md fayl qo’shing: loyiha nima qiladi, qanday ishga tushiriladi, qaysi texnologiyalar ishlatilgan. Foydalanuvchi nomingiz bilan bir xil nomli repozitoriy yaratib, unga README qo’ysangiz, u profilingiz sahifasida chiqadi — bu sizning qisqa taqdimotingiz.

Madina HTML va CSS asoslarini o’rganib, o’zi haqida bitta sahifali sayt yasadi va uni internetga chiqarmoqchi. Buning uchun GitHub Pages — bepul xizmat:

  1. index.html faylini repozitoriy ildiziga qo’yib, git push qiladi.
  2. GitHub’da repozitoriyning Settings → Pages bo’limini ochadi.
  3. Build and deployment → Source da “Deploy from a branch” ni, Branch da main va / (root) ni tanlab, Save bosadi.
  4. Bir necha daqiqadan so’ng sayt foydalanuvchi-nomi.github.io/repozitoriy-nomi manzilida ochiladi.

Shu havolani rezyume va LinkedIn profiliga qo’shish mumkin. Batafsil maslahatlar — portfolio yaratish haqidagi maqolada.

Xavfsizlik qoidalari

  • Parol, token va maxfiy kalitlarni hech qachon repozitoriyga yuklamang. Ularni .env kabi alohida faylda saqlang va .gitignore ga qo’shing.
  • Yuklab qo’ygan bo’lsangiz — kalitni darhol almashtiring. Faylni keyingi commit’da o’chirish yetarli emas: u tarixda qoladi, ochiq repozitoriylarni esa avtomatik skanerlaydigan botlar bor.
  • Ikki bosqichli himoyani yoqing: Settings → Password and authentication. GitHub o’zi ham kod yuklaydigan foydalanuvchilardan buni tobora ko’proq talab qilmoqda.
  • Shaxsiy ma’lumotlarga ehtiyot bo’ling: pasport nusxasi, telefon raqamlari ro’yxati yoki boshqa odamlarning ma’lumotlari ochiq repozitoriyda bo’lmasin.

Umumiy qoidalar — onlayn xavfsizlik maqolasida.

Grafik vositalar

Terminal majburiy emas. GitHub Desktop — Windows va macOS uchun bepul dastur: commit, push, pull va branch tugmalar bilan bajariladi. VS Code muharririda chap paneldagi Source Control bo’limi o’zgarishlarni ko’rsatadi va commit qilish imkonini beradi. Shunga qaramay, asosiy buyruqlarni terminalda bir marta o’rganib olish foydali: grafik dasturlar aynan shu buyruqlarni bajaradi va muammo chiqqanda nima bo’layotganini tushunasiz.

Keng tarqalgan xatolar

  • Hamma narsani bitta commit’ga yig’ish. Bir hafta ishlab, “hammasi” degan bitta commit qilish tarixni foydasiz qiladi. Har bir mantiqiy qadamdan keyin commit qiling.
  • Maxfiy faylni yuklash. .env yoki parolli faylni git add . bilan tasodifan qo’shib yuborish. Commit’dan oldin doim git status ni ko’ring.
  • Push qilmasdan kompyuterni almashtirish. Bekzod universitetda ishlab, push qilishni unutdi — uyda eski versiya kutib turibdi. Ishni tugatganda git push, boshlaganda git pull.
  • .git papkasini o’chirish yoki loyihani ichma-ich repozitoriylarga bo’lish. Butun tarix yo’qoladi yoki chalkashadi.
  • Konfliktdan qo’rqib, papkani qayta clone qilish. Konflikt belgilarini o’qib, qo’lda hal qilish ko’pincha bir daqiqalik ish.
  • Tushunarsiz commit xabarlari. “fix”, “yangi”, “123” — bir oydan keyin o’zingiz ham tushunmaysiz.

Amaliy mashq va checklist

O’rganganlarni bir soatlik mashqda mustahkamlang:

  1. Git’ni o’rnating va git config bilan ism va email’ni sozlang.
  2. mashq papkasini yarating va git init qiling.
  3. README.md faylida o’zingiz haqingizda 3–4 qator yozing va birinchi commit’ni qiling.
  4. .gitignore yaratib, unga .env ni qo’shing. .env fayl yaratib, git status natijasida u ko’rinmasligini tekshiring.
  5. Yana ikki marta faylni o’zgartirib, aniq xabarli commit’lar qiling; git log --oneline bilan tarixni ko’ring.
  6. GitHub’da bo’sh repozitoriy yarating, git remote add va git push -u origin main bilan yuklang.
  7. git switch -c tajriba bilan branch oching, o’zgarish kiriting, commit qiling, main ga qaytib git merge qiling.
  8. GitHub’da README’ni brauzerda tahrirlang, keyin kompyuterda git pull qiling.
  9. Xohlasangiz, oddiy index.html qo’shib, GitHub Pages’ni yoqing.

Tekshiruv ro’yxati

  • Git o’rnatilgan, ism va email sozlangan, asosiy branch — main.
  • Commit’lar kichik, xabarlari aniq.
  • .gitignore bor, maxfiy fayllar repozitoriyda yo’q.
  • GitHub akkauntida ikki bosqichli himoya yoqilgan.
  • Ish boshida git pull, oxirida git push odatga aylangan.
  • Har bir ochiq loyihada tushunarli README bor.

Git — dasturchining kundalik vositasi, lekin u matnli hujjatlar, kurs ishlari va sayt loyihalari uchun ham foydali. Agar endi dasturlashni boshlash haqida o’ylayotgan bo’lsangiz, Git’ni birinchi kunlardanoq ishlatishni odat qiling.

Agar dasturlashni o’qituvchi bilan tizimli o’rganmoqchi bo’lsangiz, assotsiatsiyamizning bepul dasturlash dasturi va boshqa o’quv dasturlari bilan tanishing. Tayyor bo’lsangiz, ariza qoldiring — mutaxassislarimiz siz bilan bog’lanadi.

Maqolalarga qaytish

Boshqa maqolalar

11 daqiqa o'qish

Algoritmik fikrlash: dasturlashdan oldingi qadam

Muammoni bo'laklarga ajratish, naqsh va abstraksiya, shart va sikl, psevdokod va blok-sxema, oddiy masalalar va qo'lda tekshirish — misollar va mashqlar bilan.

Bugun o'qishni boshlang

Guruhlarga qabul ochiq. Ariza qoldiring — mutaxassislarimiz siz bilan bog'lanib, mos yo'nalishni tanlashga yordam beradi.

Telegram orqali yozish