GitHub — Git repositorylarni internetda saqlash, boshqarish va jamoa bilan ishlash uchun ishlatiladigan platforma. GitHub yordamida dasturchilar kodni remote repositoryga yuklaydi, o‘zgarishlarni kuzatadi, pull request ochadi, code review qiladi va loyihani jamoaviy tarzda rivojlantiradi.
GitHub Git asosida ishlaydi, lekin faqat kod saqlash bilan cheklanmaydi. Unda issue, pull request, action, wiki, project board, release, package va boshqa ishlab chiqish vositalari ham mavjud.
Vazifasi
GitHub dasturiy loyihalarni internet orqali boshqarish va jamoaviy ishlash uchun ishlatiladi.
GitHub quyidagi vazifalarni bajaradi:
- Git repositorylarni remote serverda saqlash;
- kod o‘zgarishlarini jamoa bilan almashish;
- pull request orqali o‘zgarishlarni muhokama qilish;
- code review qilish;
- issue orqali vazifalar va xatoliklarni yuritish;
- CI/CD jarayonlarini avtomatlashtirish;
- open-source loyihalarni rivojlantirish;
- release versiyalarini chiqarish;
- dokumentatsiya va wiki yuritish;
- jamoa a’zolari huquqlarini boshqarish.
Masalan, dasturchi lokal kompyuterda yozgan kodini GitHub repositoryga git push orqali yuboradi.
GitHub qanday ishlaydi?
GitHub remote repository sifatida ishlaydi. Dasturchi kompyuterida local repository bo‘ladi, GitHub’da esa shu loyihaning masofaviy nusxasi saqlanadi.
Oddiy jarayon:
- dasturchi local repositoryda kod yozadi;
- o‘zgarishlarni commit qiladi;
- commitlarni GitHub’ga push qiladi;
- boshqa dasturchilar bu o‘zgarishlarni pull qiladi;
- yangi funksiya uchun branch ochiladi;
- pull request orqali o‘zgarish muhokama qilinadi;
- code reviewdan keyin branch asosiy branchga merge qilinadi.
GitHub shu jarayonni web interfeys, ruxsatlar, tarix, muhokama va avtomatlashtirish vositalari bilan qulaylashtiradi.
Repository
Repository — GitHub’da loyiha kodi, fayllari va Git tarixi saqlanadigan joy. Har bir repository alohida loyiha yoki loyiha qismini ifodalaydi.
Repository ichida quyidagilar bo‘lishi mumkin:
- source code;
- README fayl;
- dokumentatsiya;
- konfiguratsiya fayllari;
- testlar;
- Git tarixi;
- branchlar;
- pull requestlar;
- issue’lar;
- release’lar.
Repository public yoki private bo‘lishi mumkin.
Public repository
Public repository — hamma ko‘ra oladigan ochiq repository. Ochiq kodli loyihalar ko‘pincha public repository sifatida yuritiladi.
Public repository’da odatda quyidagilar ochiq bo‘ladi:
- source code;
- commit tarixi;
- issue’lar;
- pull requestlar;
- README;
- release’lar;
- loyiha dokumentatsiyasi.
Open-source loyihalar GitHub’da public repository orqali rivojlanadi.
Private repository
Private repository — faqat ruxsat berilgan foydalanuvchilar ko‘ra oladigan repository. Kompaniya, shaxsiy loyiha yoki yopiq tijoriy kodlar private repository’da saqlanishi mumkin.
Private repository’da quyidagilar cheklangan bo‘ladi:
- kodni ko‘rish;
- commit tarixini ko‘rish;
- issue va pull requestlarga kirish;
- branchlarga kirish;
- repository sozlamalarini boshqarish;
- deploy kalitlari va secretlar.
Private repository jamoa ichidagi yopiq loyihalar uchun ishlatiladi.
README
README — repository haqida asosiy ma’lumot beradigan fayl. GitHub’da README odatda repository bosh sahifasida ko‘rinadi.
README ichida quyidagilar bo‘lishi mumkin:
- loyiha nomi;
- qisqa tavsif;
- o‘rnatish qo‘llanmasi;
- ishga tushirish buyruqlari;
- konfiguratsiya;
- foydalanish misollari;
- texnologiyalar ro‘yxati;
- muallif yoki jamoa ma’lumoti;
- litsenziya;
- hissa qo‘shish qoidalari.
README ko‘pincha Markdown formatida yoziladi.
Branch
GitHub’da branch alohida ish yo‘nalishini bildiradi. Branch orqali asosiy kodga ta’sir qilmasdan yangi funksiya yoki tuzatish ustida ishlash mumkin.
Branch ishlatiladigan holatlar:
- yangi feature yaratish;
- bug fix qilish;
- hotfix tayyorlash;
- release branch yuritish;
- tajriba kod yozish;
- jamoa a’zolarining alohida ishlashi.
Masalan, main asosiy branch bo‘lsa, feature/auth branchida login tizimi ishlab chiqilishi mumkin.
Pull request
Pull request — bir branchdagi o‘zgarishlarni boshqa branchga qo‘shishdan oldin ko‘rib chiqish va muhokama qilish jarayoni.
Pull request ichida quyidagilar bo‘lishi mumkin:
- o‘zgargan fayllar;
- commitlar ro‘yxati;
- izohlar;
- code review;
- test natijalari;
- CI/CD tekshiruvlari;
- merge holati;
- reviewerlar.
Masalan, dasturchi feature/profile branchidagi o‘zgarishlarni main branchga qo‘shish uchun pull request ochadi.
Code review
Code review — pull requestdagi kodni boshqa dasturchilar tomonidan ko‘rib chiqish jarayoni.
Code review’da quyidagilar tekshiriladi:
- kod sifati;
- xatoliklar;
- arxitektura;
- naming;
- xavfsizlik;
- testlar;
- performance;
- loyiha standartlariga moslik.
GitHub’da reviewerlar kod satrlariga izoh yozishi, o‘zgarish so‘rashi yoki pull requestni tasdiqlashi mumkin.
Issue
Issue — loyiha ichidagi vazifa, xatolik, taklif yoki muhokamani yuritish uchun ishlatiladigan GitHub elementi.
Issue quyidagi maqsadlarda ishlatiladi:
- bug report;
- yangi feature taklifi;
- texnik vazifa;
- savol;
- dokumentatsiya muammosi;
- refactoring vazifasi;
- dizayn yoki UI muhokamasi.
Issue’larda title, description, label, assignee, milestone va kommentlar bo‘lishi mumkin.
Label
Label — issue yoki pull requestlarni turkumlash uchun ishlatiladigan belgi.
Keng uchraydigan label turlari:
bug;feature;documentation;enhancement;question;good first issue;help wanted;priority high;frontend;backend.
Label yordamida repository ichidagi vazifalarni tartibli boshqarish mumkin.
Assignee
Assignee — issue yoki pull request uchun mas’ul foydalanuvchi. Assignee orqali vazifa kimga biriktirilgani ko‘rsatiladi.
Assignee quyidagi holatlarda ishlatiladi:
- vazifani dasturchiga berish;
- bug tuzatishni mas’ulga topshirish;
- code review mas’ulini ko‘rsatish;
- jamoa ichida ish taqsimotini yuritish.
GitHub’da bir issue yoki pull requestga bir nechta assignee biriktirilishi mumkin.
Milestone
Milestone — issue va pull requestlarni ma’lum versiya, bosqich yoki muddat ostida guruhlash uchun ishlatiladi.
Milestone quyidagi maqsadlarda ishlatiladi:
- release tayyorlash;
- sprint vazifalarini guruhlash;
- loyiha bosqichini ajratish;
- roadmap elementlarini yuritish;
- ma’lum muddatdagi ishlarni kuzatish.
Masalan, v1.0 milestone ichida birinchi release uchun kerakli issue va pull requestlar jamlanishi mumkin.
GitHub Actions
GitHub Actions — GitHub ichida CI/CD va avtomatlashtirish jarayonlarini yaratish uchun ishlatiladigan xizmat.
GitHub Actions orqali quyidagilar bajarilishi mumkin:
- testlarni avtomatik ishga tushirish;
- kodni build qilish;
- lint tekshiruvlarini bajarish;
- Docker image yaratish;
- serverga deploy qilish;
- release yaratish;
- cron asosida task ishga tushirish;
- package publish qilish.
GitHub Actions workflow fayllari odatda .github/workflows papkasida saqlanadi.
Workflow
Workflow — GitHub Actions’da avtomatlashtirilgan jarayonni bildiradi. Workflow YAML fayl orqali yoziladi va ma’lum hodisa bo‘lganda ishga tushadi.
Workflow ishga tushadigan hodisalar:
Masalan, main branchga push bo‘lganda testlar ishga tushishi va deploy bajarilishi mumkin.
CI/CD
GitHub CI/CD jarayonlarini avtomatlashtirish uchun keng ishlatiladi. CI kod o‘zgarishlarini tekshirish, CD esa tayyor kodni deploy qilish bilan bog‘liq.
GitHub’da CI/CD quyidagilarni o‘z ichiga olishi mumkin:
- dependency o‘rnatish;
- test bajarish;
- lint tekshirish;
- build qilish;
- Docker image yaratish;
- registry’ga push qilish;
- serverga deploy qilish;
- migration bajarish;
- service restart qilish.
GitHub Actions bu jarayonlarni repository ichidan boshqarishga imkon beradi.
Release
Release — loyiha kodining ma’lum bir tayyor versiyasi. GitHub release odatda tag bilan bog‘lanadi va foydalanuvchilarga versiya haqida ma’lumot beradi.
Release ichida quyidagilar bo‘lishi mumkin:
- versiya raqami;
- changelog;
- binary fayllar;
- source code arxivi;
- release note;
- bug fixlar ro‘yxati;
- yangi imkoniyatlar.
Masalan, v1.0.0 loyihaning birinchi barqaror release versiyasi bo‘lishi mumkin.
Tag
Tag — Git tarixidagi ma’lum commitga nom berish uchun ishlatiladi. GitHub’da taglar release versiyalar bilan bog‘lanishi mumkin.
Tag misollari:
v1.0.0;v1.2.3;beta-1;stable;release-2026-07.
Taglar loyiha versiyalarini belgilash va tarixdagi muhim nuqtalarni ko‘rsatish uchun ishlatiladi.
Fork
Fork — boshqa foydalanuvchining repositorysidan o‘z hisobingizga nusxa olish jarayoni. Fork ko‘pincha open-source loyihalarga hissa qo‘shishda ishlatiladi.
Fork orqali quyidagilar bajariladi:
- loyiha nusxasini olish;
- o‘z branchingizda o‘zgartirish qilish;
- original repositoryga pull request yuborish;
- tajriba qilish;
- mustaqil variant yaratish.
Masalan, open-source kutubxonaga tuzatish kiritish uchun avval repository fork qilinadi.
Star
Star — GitHub’da repositoryni belgilab qo‘yish va unga qiziqish bildirish belgisi.
Star quyidagi maqsadlarda ishlatiladi:
- repositoryni keyinroq topish;
- loyiha ommabopligini ko‘rsatish;
- open-source loyihaga qiziqish bildirish;
- foydali kutubxonalarni saqlab qo‘yish.
Ko‘p star olgan repository odatda ko‘proq e’tibor va foydalanuvchiga ega bo‘ladi.
Watch
Watch — repositorydagi yangiliklar haqida bildirishnoma olish funksiyasi.
Watch orqali foydalanuvchi quyidagi hodisalarni kuzatishi mumkin:
- yangi issue;
- yangi pull request;
- release;
- muhokamalar;
- security alert;
- repositorydagi umumiy faollik.
Watch funksiyasi muhim loyihalarni kuzatib borishda ishlatiladi.
GitHub Pages
GitHub Pages — statik saytlarni GitHub repositorydan bepul joylash imkonini beradigan xizmat.
GitHub Pages orqali quyidagilar joylanishi mumkin:
- portfolio;
- dokumentatsiya;
- blog;
- landing page;
- open-source loyiha sahifasi;
- statik HTML/CSS/JavaScript sayt;
- frontend build fayllari.
GitHub Pages odatda username.github.io yoki custom domen orqali ishlashi mumkin.
GitHub Wiki
GitHub Wiki — repository uchun alohida dokumentatsiya sahifalarini yuritish imkoniyati. Wiki loyiha haqida batafsil ma’lumot, qo‘llanma, API izohi yoki texnik hujjatlar uchun ishlatiladi.
GitHub Wiki’da quyidagilar bo‘lishi mumkin:
- o‘rnatish qo‘llanmasi;
- foydalanish qoidalari;
- arxitektura izohi;
- API dokumentatsiyasi;
- savol-javoblar;
- ishlab chiqish jarayoni;
- texnik qarorlar.
Wiki repository kodidan alohida hujjat qatlamini yaratadi.
GitHub Projects
GitHub Projects — vazifalar, issue’lar va pull requestlarni loyiha boshqaruvi ko‘rinishida tartiblash uchun ishlatiladi.
GitHub Projects quyidagi ko‘rinishlarda ishlatilishi mumkin:
Project board’da vazifalar Todo, In Progress, Review, Done kabi ustunlarga ajratilishi mumkin.
GitHub Packages
GitHub Packages — package va container image’larni GitHub ichida saqlash uchun ishlatiladigan xizmat.
GitHub Packages quyidagilarni saqlashi mumkin:
Bu xizmat kod repositorysi bilan bog‘langan holda package distribution qilish imkonini beradi.
Secrets
Secrets — GitHub’da maxfiy qiymatlarni xavfsiz saqlash uchun ishlatiladigan sozlama. Secrets odatda GitHub Actions workflow ichida ishlatiladi.
Secrets ichida quyidagilar bo‘lishi mumkin:
- API token;
- deploy kaliti;
- server paroli;
- SSH private key;
- database URL;
- cloud access key;
- webhook secret.
Secrets kod ichida ochiq yozilmaydi. Workflow ularni kerakli paytda environment variable sifatida ishlatishi mumkin.
Collaborator
Collaborator — repositoryda ishlash huquqiga ega foydalanuvchi. Collaborator repositoryga commit qilish, issue yuritish, pull request ko‘rish yoki sozlamalarni boshqarish huquqiga ega bo‘lishi mumkin.
GitHub’da ruxsat darajalari:
- read;
- triage;
- write;
- maintain;
- admin.
Ruxsat darajasi foydalanuvchi repository ichida nimalar qila olishini belgilaydi.
Organization
Organization — GitHub’da jamoa, kompaniya yoki loyiha guruhi uchun yaratiladigan umumiy hisob turi. Organization ichida bir nechta repository, team va permissionlar boshqariladi.
Organization quyidagi holatlarda ishlatiladi:
- kompaniya loyihalari;
- open-source jamoa;
- community repositorylar;
- o‘quv markazi loyihalari;
- mahsulotlar guruhi;
- DevOps va infratuzilma repositorylari.
Organization ichida foydalanuvchilar teamlarga ajratilishi mumkin.
GitHub va Git farqi
GitHub va Git bir xil narsa emas.
- Git — kod o‘zgarishlarini boshqaradigan version control tizimi;
- GitHub — Git repositorylarni internetda saqlash va jamoa bilan ishlash platformasi;
- Git lokal kompyuterda ishlaydi;
- GitHub remote repository, issue, pull request va CI/CD imkoniyatlarini beradi;
- Git buyruqlar orqali ishlaydi;
- GitHub web interfeys va qo‘shimcha xizmatlar beradi.
Masalan, commit yaratish Git vazifasi, pull request ochish esa GitHub platformasidagi jarayon hisoblanadi.
Dasturlashdagi o‘rni
GitHub zamonaviy dasturlash jarayonida kod saqlash, jamoaviy ishlash, open-source hissa qo‘shish va deployment jarayonlarini boshqarishda keng ishlatiladi.
GitHub quyidagi joylarda qo‘llanadi:
- frontend loyihalar;
- backend loyihalar;
- mobile ilovalar;
- DevOps konfiguratsiyalar;
- open-source kutubxonalar;
- dokumentatsiya;
- CI/CD pipeline;
- portfolio;
- package tarqatish;
- issue tracking;
- code review.
GitHub Git asosidagi loyihalarni internetda boshqarish va rivojlantirish uchun ishlatiladigan eng mashhur platformalardan biridir.
Bog‘liq tushunchalar
Git, Repository, Commit, Branch, Pull request, Code review, Issue, CI/CD, GitHub Actions, Open-source, Deployment, Markdown