Skip to content

11-dars: GitHub bilan ishlash

Dars haqida

Davomiyligi: 90 daqiqa Maqsad: Talaba GitHub akkaunt yaratishi, repository ochishi, kodni push/pull qilishi, branchlar bilan ishlashi va boshqalar loyihasiga hissa qo'shishni o'rganishi kerak.

1. GitHub nima?

GitHub — Git repositoriyalarini internetda saqlash va boshqalar bilan ulashish platformasi.

2008-yilda chiqarilgan. 2018-yilda Microsoft sotib oldi (~$7.5 milliard).

Hozir:

  • 100M+ foydalanuvchi
  • 400M+ repository
  • Dunyodagi dasturchilar standardi

2. Nima uchun GitHub kerak?

VazifaTushuntirish
Bulutda saqlashDisk yo'qolsa — kod GitHub'da
PortfolioIsh berib turganda kod ko'rsatish
Hamkorlik100 ta dasturchi bir loyihada
Ochiq kodLinux, React, VS Code va boshqalar
IssueXato va vazifalar ro'yxati
CI/CDAvtomatik test va deployment
GitHub PagesBepul sayt yaratish

3. GitHub alternativlari

  • GitLabgitlab.com (DevOps integratsiyasi yaxshi)
  • Bitbucketbitbucket.org (Atlassian)
  • Codebergcodeberg.org (ochiq kod, hamjamiyat)
  • Gitea — o'zingizning serveringizda

Foundation kursida: GitHub.

4. GitHub akkaunt yaratish

  1. github.com ga kiring
  2. Sign up
  3. Email va parol
  4. Username — professional bo'lsin:
    • akmalkarimov
    • akmal-karimov
    • akarimov
    • xxx_killer_xxx
    • princess123
  5. Email tasdiqlash
  6. Akkaunt tayyor

Username muhim

GitHub username — sizning professional kalitingiz:

  • github.com/akmalkarimov — bu sizning URL
  • Rezyumeda yoziladi
  • Ish berib turganda ko'rinadi
  • Keyinchalik o'zgartirish qiyin

Yaxshi tanlang.

5. Profilni sozlash

  1. Yuqori o'ng burchakda profil rasmiYour profile
  2. Edit profile:
    • Profil rasmi (real foto)
    • Bio (1-2 jumla — kim siz)
    • Location (shahar)
    • Website (bor bo'lsa)
    • Twitter, LinkedIn

Yaxshi GitHub profili

Ish beruvchi avval GitHub'ga kiradi:

  • Profil rasmi bormi?
  • Bio aniqmi?
  • Repository'lar bormi?
  • README chiroylimi?
  • Aktivlikmi (yashil kvadratlar)?

Birinchi taassurot muhim.

6. Birinchi repository yaratish

  1. Yuqori o'ng burchakda +New repository
  2. Sozlamalar:
    • Repository name: mening-birinchi-repo
    • Description: 1-2 jumla
    • Public yoki Private
    • Add a README belgilang
    • Add .gitignore: tanlang (None, Python, Node va h.k.)
    • License: hozircha None
  3. Create repository

Public vs Private

PublicPrivate
Hammaga ko'rinadiFaqat sizga (yoki ruxsat berganlar)
BepulBepul (lekin ba'zi funksiyalar Pro)
Portfolio uchunMaxfiy ish uchun

Tavsiya

O'quv loyihalar — public qiling. Portfolio uchun foydali.

Shaxsiy yoki maxfiy — private.

7. Repository'ning asosiy qismlari

8. README.md — eng muhim fayl

README — repo'ning bosh sahifasi. GitHub avtomatik ko'rsatadi.

Yaxshi README tarkibi

markdown
# Loyiha nomi

Loyiha haqida 1-2 jumla.

## Tavsif

Batafsilroq nima qilinmoqda.

## O'rnatish

\`\`\`bash
$ git clone https://github.com/user/repo.git
$ cd repo
$ npm install
\`\`\`

## Ishlatish

\`\`\`bash
$ npm start
\`\`\`

## Misol

[Screenshot yoki kod misoli]

## Texnologiyalar

- HTML, CSS, JavaScript
- React
- Node.js

## Muallif

Akmal Karimov — [@akmalkarimov](https://github.com/akmalkarimov)

## Litsenziya

MIT

Markdown

GitHub README'da Markdown ishlatiladi:

markdown
# Sarlavha 1
## Sarlavha 2
### Sarlavha 3

**Bold matn**
*Italic matn*
~~O'chirilgan~~

- Bullet list
- Element
  - Pastki

1. Numbered
2. Element

[Havola matni](https://example.com)
![Rasm](image.png)

`inline kod`

\`\`\`python
# Kod bloki
print("Salom")
\`\`\`

> Iqtibos

| Jadval | Sarlavha |
|--------|----------|
| Hujayra | Hujayra |

9. Repository'ni local'ga olish — clone

bash
$ git clone https://github.com/akmalkarimov/mening-birinchi-repo.git
$ cd mening-birinchi-repo
$ ls

clone — GitHub'dagi repo'ni kompyuteringizga butunligicha nusxalash.

URL'ni qayerdan olish:

  • Repo sahifasida Code yashil tugmasi → HTTPS yoki SSH havolasini nusxalash

10. Local repo'ni GitHub bilan bog'lash

Avval GitHub'da yangi repo yarating (README'siz):

bash
$ cd ~/oquv-loyiha
$ git remote add origin https://github.com/akmalkarimov/oquv-loyiha.git
$ git remote -v
origin  https://github.com/akmalkarimov/oquv-loyiha.git (fetch)
origin  https://github.com/akmalkarimov/oquv-loyiha.git (push)

origin — GitHub repo'ning nick'i (sukut bo'yicha).

11. push — GitHub'ga yuborish

bash
$ git push -u origin main

-u origin main — birinchi marta. Keyingilarda:

bash
$ git push

Bu — sizning local commit'larni GitHub'ga yuklaydi.

Push qachon?

Har necha commit'dan keyin push qiling. Maslahat:

  • Kichik o'zgarishlar — kun oxirida
  • Muhim featurelar — darrov
  • Boshqalar bilan ishlasangiz — tez-tez

Push qilinmagan commit — faqat sizning kompyuteringizda.

12. pull — GitHub'dan olish

bash
$ git pull

GitHub'dagi yangi commit'larni local'ga oladi.

Foydalanish: boshqa odam o'zgartirgan bo'lsa yoki boshqa kompyuterdan ishlasangiz.

13. Authentication — autentifikatsiya

GitHub'ga push qilayotganda — kim ekanligingizni tasdiqlash kerak.

Eski usul: HTTPS + parol

git push qilganda parol so'raydi. 2021 yildan beri parol ishlamaydi.

Yangi usul 1: Personal Access Token (PAT)

  1. GitHub → Settings → Developer settings
  2. Personal access tokensTokens (classic)
  3. Generate new token
  4. Scope tanlang: repo
  5. Token'ni nusxalang va saqlang (qaytib ko'rsatilmaydi!)

git push qilganda — parol o'rniga token kiritasiz.

Yangi usul 2: SSH Key

  1. Terminal:
    bash
    $ ssh-keygen -t ed25519 -C "akmal@example.com"
  2. Enter, Enter, Enter (standart javoblarni qabul qilish)
  3. Public key:
    bash
    $ cat ~/.ssh/id_ed25519.pub
    ssh-ed25519 AAAA... akmal@example.com
  4. Nusxalang
  5. GitHub → Settings → SSH and GPG keysNew SSH key
  6. Yopishtiring va Add SSH key

Endi repo URL'ni SSH formatga o'zgartiring:

bash
$ git remote set-url origin git@github.com:akmalkarimov/repo.git

Endi push parolsiz.

Yangi usul 3: GitHub CLI

bash
$ gh auth login

Yo'l-yo'riq beradi, browser'da login qildiradi.

Tavsiya

Boshlovchi uchun — GitHub CLI (gh) eng oson.

brew install gh (Mac), winget install --id GitHub.cli (Windows).

14. Branchlar bilan ishlash

bash
$ git branch                 # mavjud branchlar
$ git branch new-feature     # yangi branch yaratish
$ git checkout new-feature   # branchga o'tish
$ git checkout -b another    # birga (yarat + o'tish)
$ git checkout main          # main'ga qaytish

Misol: yangi feature

bash
$ git checkout -b add-login

# Kodda o'zgarishlar...

$ git add .
$ git commit -m "feat: add login form"
$ git push origin add-login    # GitHub'ga yangi branch

GitHub'da add-login branch ko'rinadi.

15. Pull Request (PR) — so'rov

Pull Request (PR) — branchdagi o'zgarishlarni main'ga qo'shishni so'rash.

PR yaratish

  1. GitHub'da repo sahifasi
  2. Branchni tanlang (yoki yashil tugmacha Compare & pull request chiqadi)
  3. New pull request
  4. Sarlavha va tavsif yozing
  5. Create pull request

Review

Boshqalar:

  • Kodni o'qiydi
  • Izoh qoldiradi
  • Approve yoki Request changes

Merge

PR tasdiqlangandan keyin:

  • Merge pull request tugmasi
  • Branch main'ga qo'shiladi
  • Endi branch'ni o'chirish mumkin

Tushuncha: nima uchun PR?

Real loyihalarda — hech kim main'ga to'g'ridan-to'g'ri push qila olmaydi.

Hamma:

  1. Branch yaratadi
  2. Ishlaydi
  3. PR ochadi
  4. Boshqalar tekshiradi (code review)
  5. Tasdiqlangach — merge

Bu — kod sifati va xavfsizligini ta'minlaydi.

16. Issues — vazifalar va xatolar

Issue — repo'ga oid vazifa, xato yoki taklif.

Misol

Title: Login forma ishlamayapti
Labels: bug, priority-high

Tavsif:
Foydalanuvchi parol kiritganda, "Login muvaffaqiyatsiz" xabari chiqadi.

Qadamlar:
1. /login sahifasiga kirish
2. Email va parol kiritish
3. Login tugmasini bosish

Kutilgan: dashboard'ga o'tish
Real: xato xabari

Brauzer: Chrome 120
OS: macOS 14

Labels

  • bug — xato
  • feature — yangi xususiyat
  • enhancement — yaxshilash
  • documentation — hujjat
  • help wanted — yordam kerak
  • good first issue — boshlovchi uchun

17. Fork — boshqa loyihaga hissa

Fork — boshqa odamning repo'sini o'zingizga nusxalash.

Qadamlar

  1. GitHub'da boshqa loyiha sahifasiga kiring
  2. Yuqori o'ng burchakda Fork tugmasi
  3. O'zingizga nusxalanadi
  4. Clone qiling
  5. O'zgartirish kiriting
  6. Push qiling (o'z fork'ingizga)
  7. Pull Request original repo'ga

Bu — ochiq kod (open source) ishlash usuli.

18. README bilan profilni qo'shish

Profile README

GitHub'da maxsus: sizning usernameingiz bilan bir xil repo nomi yarating.

Misol: akmalkarimov/akmalkarimov

Bu repo'ning README — profilingiz bosh sahifasida ko'rinadi.

Misol

markdown
### Salom! Mening ismim Akmal 👋

🌱 Hozir o'rganaman: Python, JavaScript

🚀 Loyihalarim:
- [Project 1](#)
- [Project 2](#)

📫 Aloqa: akmal@email.com

GitHub Pages — bepul portfolio.

19. GitHub Pages — bepul sayt

GitHub'da bepul sayt ishlatish.

Qadamlar

  1. Repo yarating: username.github.io
  2. index.html faylini push qiling
  3. URL: https://username.github.io/

Bu — bepul shaxsiy sayt!

Yoki har repo uchun:

  1. Repo Settings → Pages
  2. Source: main branch
  3. URL: https://username.github.io/repo-name/

20. GitHub Stats va Activity

Aktivlik kalendar — yashil kvadratlar (har commit'da).

█ █ ░ █ █ ░ ░    ░ — kuni commit yo'q
█ █ █ █ █ █ ░    █ — kuni commit bor
█ █ █ █ █ █ ░

Ish beruvchi ko'radi: siz har kuni ishlaysizmi?

Yashil kvadratlar

Har kun kichik commit qilish odat bo'lsin.

100% to'lgan kalendar — kuchli signal.

21. To'liq workflow misoli

bash
# 1. GitHub'da repo yaratdingiz: oquv-loyiha

# 2. Local'da yarating
$ mkdir oquv-loyiha
$ cd oquv-loyiha
$ git init

# 3. Bog'lang
$ git remote add origin https://github.com/akmalkarimov/oquv-loyiha.git

# 4. Birinchi fayl
$ echo "# Oquv Loyiha" > README.md
$ git add README.md
$ git commit -m "Initial commit"

# 5. Push
$ git branch -M main
$ git push -u origin main

# 6. Yangi feature uchun branch
$ git checkout -b feature/add-login

# 7. Kodni o'zgartiring...
$ echo "<h1>Login</h1>" > login.html
$ git add login.html
$ git commit -m "feat: add login page"

# 8. Push (yangi branch)
$ git push -u origin feature/add-login

# 9. GitHub'da Pull Request yarating
# (brauzer orqali)

# 10. Tasdiqlangandan keyin — merge
# (GitHub'da)

# 11. Local'da main'ga qaytish va pull
$ git checkout main
$ git pull

Darsdagi topshiriqlar

Topshiriq 1 — GitHub akkaunt

  1. github.com da akkaunt yarating (yo'q bo'lsa)
  2. Profil sozlang:
    • Profil rasmi (real foto)
    • Bio
    • Location
    • Email (public)
  3. Username professional bo'lsin

Profil URL'ingizni Drive'ga yozing.

Topshiriq 2 — Birinchi repo (GitHub'da)

  1. GitHub'da yangi repo yarating: foundation-portfolio
  2. Public qiling
  3. README qo'shing
  4. .gitignore: None
  5. Create repository

Repository URL'ini daftarga yozing.

Topshiriq 3 — Clone va Push

  1. Repo'ni local'ga olish:

    bash
    $ git clone https://github.com/USERNAME/foundation-portfolio.git
    $ cd foundation-portfolio
  2. Yangi fayl yarating:

    bash
    $ echo "## Mening yutuqlarim" >> README.md
    $ echo "- 1-oy: Office tugallandi" >> README.md
    $ echo "- 2-oy: AI tugallandi" >> README.md
    $ echo "- 3-oy: CS asoslari" >> README.md
  3. Commit:

    bash
    $ git add README.md
    $ git commit -m "docs: add achievements"
  4. Push:

    bash
    $ git push

GitHub'da yangilanganini ko'ring.

Topshiriq 4 — README chiroyli qiling

GitHub'da foundation-portfolio repo README'sini Markdown bilan chiroyli qiling.

Tarkib:

markdown
# Foundation Portfolio

Bu — Master IT o'quv markazi Foundation kursimning portfoliosi.

## Talaba

**[Sizning ismingiz]**

## Davr

2026-yil may - oktyabr (6 oy)

## Yo'nalishlar

### 1-oy: Kompyuter asoslari va Office
- Kompyuter asoslari: 2 dars
- Word: 4 dars
- Excel: 5 dars
- Imtihon: ✓

### 2-oy: Excel davomi, PowerPoint va AI
- Excel davomi: 1 dars
- PowerPoint: 2 dars
- AI va promptlar: 7 dars
- Canva: 1 dars
- Imtihon: ✓

### 3-oy: CS asoslari va Git/GitHub
- Algoritmlar
- Scratch
- Terminal
- Git va GitHub
- Imtihon: tez orada

## Loyihalar

- [Birinchi loyiha](#)
- [Ikkinchi loyiha](#)

## Aloqa

- Email: akmal@example.com
- GitHub: [@akmalkarimov](https://github.com/akmalkarimov)

Commit va push qiling.

Topshiriq 5 — Branchlar

bash
$ cd foundation-portfolio

# Yangi branch
$ git checkout -b feature/projects

# Yangi fayl
$ echo "# Loyihalarim" > projects.md
$ echo "## 1. Scratch o'yini" >> projects.md
$ echo "Olma tutish o'yini..." >> projects.md
$ echo "" >> projects.md
$ echo "## 2. README portfolio" >> projects.md
$ echo "Bu repository..." >> projects.md

# Commit
$ git add projects.md
$ git commit -m "feat: add projects list"

# Push (yangi branch)
$ git push -u origin feature/projects

GitHub'da ikkita branch bor: main va feature/projects.

Topshiriq 6 — Pull Request

  1. GitHub'da foundation-portfolio repo sahifasi
  2. Yuqorida sariq xabar: Compare & pull request (yoki Pull requests tab → New)
  3. Branch: feature/projectsmain
  4. Sarlavha: feat: add projects list
  5. Tavsif:
    Bu PR — loyihalar ro'yxati qo'shadi.
    
    ## O'zgarishlar
    - Yangi fayl: projects.md
    - 2 ta loyiha tafsiloti
  6. Create pull request

PR ko'rinishini screenshot oling.

Keyin: Merge pull request tugmasini bosing.

Local'da:

bash
$ git checkout main
$ git pull

Topshiriq 7 — Issue yaratish

  1. Repo sahifasi → Issues tab → New issue
  2. Sarlavha: README dizaynni yaxshilash
  3. Tavsif:
    markdown
    ## Tavsif
    README hozirgi holatda — sodda. Quyidagilarni qo'shish kerak:
    
    - [ ] Logo / banner rasm
    - [ ] Skills/Technologies bo'limi
    - [ ] Loyihalar uchun screenshot
    - [ ] Stats badges (GitHub Stats)
    - [ ] Aloqa bo'limini kengaytirish
    
    ## Prioritet
    Medium
  4. Labels: enhancement, documentation
  5. Submit new issue

Issue URL'ini daftarga yozing.

Topshiriq 8 — Fork va contribute

  1. GitHub'da boshqa bir mashhur loyihaga kiring (masalan, freeCodeCamp/freeCodeCamp)
  2. Star tugmasini bosing (loyihaga "like")
  3. Fork tugmasini bosing — o'zingizga nusxa olasiz
  4. Sizning fork'ingiz — github.com/USERNAME/freeCodeCamp

(O'zgartirish va PR — keyingi vazifalarda)

Topshiriq 9 — Profile README

  1. GitHub'da yangi repo yarating, nom — sizning username'ingiz (masalan, akmalkarimov)
  2. README qo'shing
  3. Profile README — profilingizning bosh sahifasi
  4. Quyidagi shablon:
markdown
### Salom! Mening ismim [Ism] 👋

🌍 Toshkent, O'zbekiston

💻 Hozir o'rganaman:
- Foundation: CS asoslari
- Scratch, Git, GitHub
- Tez orada: C va Python

📚 Foundation darsligim:
- [foundation-portfolio](https://github.com/USERNAME/foundation-portfolio)

📫 Aloqa:
- Email: akmal@example.com
- LinkedIn: [linkedin.com/in/akmalkarimov](https://linkedin.com/in/akmalkarimov)
  1. Profilingizga kirib ko'ring: github.com/USERNAME

README ko'rinmoqda?

Topshiriq 10 — Daily commit habit

Keyingi 7 kun davomida — har kuni eng kamida 1 ta commit qiling.

Vazifa bo'lmasa ham:

  • README'da kichik o'zgartirish
  • Yangi izoh
  • Bir jumla qo'shish

Maqsad — yashil kalendar odati.

Har kuni daftarga yozing:

  • Sana
  • Commit message
  • Nimani o'zgartirdingiz

Asosiy tushunchalar (lug'at)

TerminQisqacha izoh
GitHubGit repositoriy hosting platformasi
Repository (repo)GitHub'dagi loyiha
CloneRepo'ni kompyuterga nusxalash
PushLocal'dan GitHub'ga yuklash
PullGitHub'dan local'ga olish
RemoteInternet'dagi nusxa (origin)
OriginDefault remote nick'i
BranchTarmoq, rivojlanish chizig'i
main / masterAsosiy branch
Pull Request (PR)Branchni main'ga qo'shish so'rovi
MergeBranchni qo'shish
IssueVazifa yoki xato
ForkBoshqa repo'ni o'zingizga nusxalash
StarLoyihaga "like"
README.mdRepo bosh sahifa fayl
MarkdownREADME sintaksisi
PATPersonal Access Token
SSH KeyXavfsiz autentifikatsiya kalit
GitHub PagesBepul sayt
Contribution graphYashil kvadratlar kalendar

Keyingi dars

12-dars: Oylik imtihon →

Master IT o'quv markazi — o'qitish rejasi