GitHub nima? Git va GitHub farqi. Account, SSH key sozlash

~15 daq · Git · Kirish va O'rnatish

Muammodan boshlaylik

Git kompyuteringizda tarixni saqlaydi. Lekin:

  • Noutbuk buzilsa yoki o'g'irlansa — loyiha va butun tarix yo'qoladi
  • Hamkasbingiz sizning kodingizni qanday oladi? Flesh orqalimi?
  • Ish beruvchiga portfoliongizni qanday ko'rsatasiz?
  • Ochiq kodli loyihaga qanday hissa qo'shasiz?

Kerak — repozitoriy uchun umumiy joy internetda. Eng mashhuri — GitHub.


GitHub nima?

GitHub — Git repozitoriylarini saqlash va ular ustida hamkorlik qilish uchun veb-platforma. 100 milliondan ortiq dasturchi, 400 milliondan ortiq repozitoriy. 2018 yildan Microsoft ga tegishli.

   Sizning kompyuteringiz                 GitHub
  ┌──────────────────────┐          ┌──────────────────┐
  │  loyiha/             │  push →  │  otabek/loyiha   │
  │  .git/ (tarix)       │  ← pull  │  (tarix nusxasi) │
  └──────────────────────┘          └────────┬─────────┘
                                             │ clone
                                    ┌────────▼─────────┐
                                    │ Hamkasb kompyuteri│
                                    └──────────────────┘

Git ustiga GitHub qo'shadigan narsalar:

  • Hosting — repozitoriy internetda, zaxira
  • Pull Request — o'zgarishlarni ko'rib chiqish va muhokama (23-dars)
  • Issues — vazifalar va xatolar (25-dars)
  • Actions — avtomatik test va deploy (38–39-darslar)
  • Pages — bepul statik sayt hosting (40-dars)
  • Profil — portfoliongiz: ish beruvchilar birinchi qaraydigan joy

Muqobillar

Platforma Xususiyati
GitHub Eng katta jamiyat, ochiq kod markazi
GitLab Kuchli o'rnatilgan CI/CD; o'z serveringizga o'rnatish mumkin
Bitbucket Atlassian (Jira) bilan integratsiya
Gitea / Forgejo Yengil, o'z serveringiz uchun

Hammasi Git ustida ishlaydi — Git bilimlaringiz har birida bir xil.


Hisob yaratish

  1. github.com → Sign up
  2. Email, parol, username — username profilingiz manzili bo'ladi: github.com/username. Professional tanlang (otabek-dev, ohasanov — super_coder_2000 emas)
  3. Emailni tasdiqlang
  4. Ikki bosqichli autentifikatsiya (2FA) ni yoqing: Settings → Password and authentication. GitHub kod yozuvchilar uchun buni majburiy qiladi

GitHub bilan bog'lanish: HTTPS yoki SSH

Kompyuteringizdan GitHub ga push qilganda, GitHub kimligingizni tekshirishi kerak. Ikki yo'l:

HTTPS SSH
Manzil https://github.com/otabek/loyiha.git git@github.com:otabek/loyiha.git
Autentifikatsiya Token (parol emas!) yoki credential manager SSH kalit
Sozlash Oson Bir marta, 5 daqiqa
Har kuni Credential manager eslab qoladi Hech narsa so'ramaydi

[!INFO] 2021 yildan GitHub HTTPS orqali oddiy parol bilan push qilishni qabul qilmaydi. Kerak: Personal Access Token yoki credential manager (Windows uchun Git bilan birga o'rnatiladi — birinchi push da brauzerda kirishni so'raydi).

Ikkalasi ham yaxshi. Quyida — SSH, chunki u bir marta sozlanadi va hamma joyda ishlaydi (batafsil — 50-dars).


SSH kalit sozlash

1. Mavjud kalitni tekshirish

ls -la ~/.ssh

id_ed25519 va id_ed25519.pub bo'lsa — kalit bor, 3-qadamga o'ting.

2. Kalit yaratish

ssh-keygen -t ed25519 -C "otabek@example.com"
Enter file in which to save the key (/c/Users/Otabek/.ssh/id_ed25519): [Enter]
Enter passphrase (empty for no passphrase): [parol yoki Enter]

Ikkita fayl yaratiladi:

  • id_ed25519 — yopiq kalit. Hech kimga bermang, hech qayerga yuklamang
  • id_ed25519.pub — ochiq kalit. GitHub ga shu qo'yiladi

3. Ochiq kalitni nusxalash

cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGx... otabek@example.com

Butun qatorni nusxalang. Windows Git Bash da qisqaroq: clip < ~/.ssh/id_ed25519.pub; Mac da: pbcopy < ~/.ssh/id_ed25519.pub.

4. GitHub ga qo'shish

GitHub → Settings → SSH and GPG keys → New SSH key:

  • Title: "Noutbuk" (qaysi kompyuter ekanini bilish uchun)
  • Key: nusxalangan qator
  • Add SSH key

5. Tekshirish

ssh -T git@github.com
The authenticity of host 'github.com' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
Are you sure you want to continue connecting (yes/no)? yes

Hi otabek! You've successfully authenticated, but GitHub does not provide shell access.

"Hi otabek!" — hammasi ishlayapti. Endi git@github.com:... manzilli repozitoriylar parolsiz ishlaydi.

[!WARNING] Yopiq kalitni (id_ed25519 — .pub siz) hech qachon nusxalamang, chatga tashlamang yoki repozitoriyga qo'shmang. U kimda bo'lsa — sizning nomingizdan GitHub ga yoza oladi. Kalit sizib chiqsa — darhol GitHub dan o'chiring.


GitHub profilini tayyorlash

Ish beruvchilar GitHub profilingizni ko'radi. Minimal:

  • Rasm va ism
  • Bio — bir qator: "Backend dasturchi — Node.js, PostgreSQL"
  • Profil README — username/username nomli repozitoriy yarating, uning README.md fayli profilingizning bosh sahifasida ko'rinadi
  • Pinned repozitoriylar — eng yaxshi 4–6 loyihangiz, har birida tushunarli README bilan

Nima uchun shunday?

Nima uchun GitHub dasturchilar uchun shunchalik markaziy bo'lib qoldi — bu shunchaki fayl saqlash joyi emasmi?

Chunki GitHub kodni ijtimoiy qildi. Undan oldin ochiq loyihaga hissa qo'shish — pochta ro'yxatlariga patch fayllar yuborish edi. GitHub "Fork" va "Pull Request" tugmalarini qo'shdi — endi istalgan odam istalgan loyihani nusxalab, yaxshilab, bir bosishda taklif qila oladi. Natijada GitHub dasturchilar uchun ham hujjat ombori, ham ijtimoiy tarmoq, ham portfolio, ham ish joyi bo'ldi. Sizning commit tarixingiz va loyihalaringiz — eng yaxshi rezyume: ular nima qila olishingizni ko'rsatadi, nima deb yozganingizni emas.


Xulosa

Eslab qoling:

  • Git — lokal dastur; GitHub — repozitoriylar uchun onlayn platforma
  • GitHub: hosting, Pull Request, Issues, Actions, Pages, portfolio
  • Muqobillar: GitLab, Bitbucket, Gitea
  • Hisob: professional username, 2FA
  • HTTPS (token / credential manager) yoki SSH (kalit)
  • SSH: ssh-keygen -t ed25519 → .pub ni GitHub ga → ssh -T git@github.com
  • Yopiq kalit — hech qachon hech kimga

Keyingi bo'lim

2-bo'lim: Git Asoslari — repozitoriy, uch zona, add, commit, log, diff, .gitignore.