GitHub nima? Git va GitHub farqi. Account, SSH key sozlash
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
- github.com → Sign up
- Email, parol, username — username profilingiz manzili bo'ladi:
github.com/username. Professional tanlang (otabek-dev,ohasanov—super_coder_2000emas) - Emailni tasdiqlang
- 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 yuklamangid_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—.pubsiz) 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/usernamenomli repozitoriy yarating, uningREADME.mdfayli 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→.pubni 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.