11-bo‘lim
GitHub bilan ishlash
Hisob yaratish, SSH kalit sozlash, repozitoriy ochish, README yozish va GitHub imkoniyatlari bilan tanishish.
Ushbu bo‘lim mundarijasi
- Hisob yaratish
- SSH kalit sozlash
- 1. Kalit yaratish
- 2. Ochiq kalitni nusxalash
- 3. GitHub ga qo'shish
- 4. Tekshirish
- Repozitoriy yaratish
- Mavjud loyihani yuklash
- README.md
- GitHub interfeysi
- Issues - vazifalar va xatolar
- Kommitni Issue bilan bog'lash
- Profil sozlash
- GitHub Pages - bepul hosting
- Gist - kichik kod parchalari
- Qidiruv
- GitHub CLI
- Alternativalar
- Xulosa
GitHub - dunyodagi eng yirik kod platformasi. Unda 100 milliondan ortiq repozitoriy va 100 milliondan ortiq foydalanuvchi bor.
Hisob yaratish #
- github.com saytiga kiring
- Sign up tugmasini bosing
- Email, parol va foydalanuvchi nomini kiriting
- Emailni tasdiqlang
Bu sizning professional identifikatoringiz bo'ladi. U rezyumeda, vizitkada va profil havolasida ko'rinadi:
github.com/husanboyqodirov
Yaxshi: dkarimova, husanboy-dev, husanboyk
Yomon: xXx_koder_2005_xXx, test123, asdasd
Nomni keyin o'zgartirish mumkin, lekin eski havolalar buziladi.
GitHub hisobingiz - bu sizning barcha kodingiz. Uni himoya qiling:
Settings → Password and authentication → Two-factor authentication
GitHub 2023-yildan beri barcha kod muallifi bo'lgan foydalanuvchilardan buni majburiy talab qiladi.
SSH kalit sozlash #
SSH kaliti bilan har safar parol kiritish shart emas.
1. Kalit yaratish #
ssh-keygen -t ed25519 -C "[email protected]"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/c/Users/husanboy/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/husanboy/.ssh/id_ed25519
Your public key has been saved in /c/Users/husanboy/.ssh/id_ed25519.pub
Uchala savolga Enter bosish mumkin (parol qo'yish ixtiyoriy, lekin tavsiya etiladi).
ed25519 yoki rsa?ed25519 - zamonaviy, tezroq va xavfsizroq. Uni ishlating.
Juda eski server bilan ishlasangiz:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
2. Ochiq kalitni nusxalash #
cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH8kL2mN9pQ4rS7tU0vW3xY6zA1bC4dE7fG0hI [email protected]
# Windows da to'g'ridan-to'g'ri buferga
clip < ~/.ssh/id_ed25519.pub
# macOS
pbcopy < ~/.ssh/id_ed25519.pub
.pub bo'lmagan faylni hech kimga bermangid_ed25519 - maxfiy kalit. U hech qachon hech kimga berilmaydi.
id_ed25519.pub - ochiq kalit. Faqat shuni GitHub ga qo'yasiz.
.pub qo'shimchasini adashtirib yubormang.
3. GitHub ga qo'shish #
Settings → SSH and GPG keys → New SSH key
- Title:
Ish noutbugi - Key type:
Authentication Key - Key: nusxalangan matnni joylashtiring
4. Tekshirish #
ssh -T git@github.com
Hi husanboyqodirov! You've successfully authenticated, but GitHub does not
provide shell access.
Mavjud loyihada:
git remote set-url origin git@github.com:husanboyqodirov/loyiha.git
git remote -v
Repozitoriy yaratish #
New tugmasi yoki github.com/new
| Maydon | Izoh |
|---|---|
| Repository name | Kichik harflar, chiziqcha bilan: kutubxona-tizimi |
| Description | Bir jumlada loyiha nima qilishini yozing |
| Public / Private | Ochiq yoki yopiq |
| Add a README | Boshlovchilar uchun - belgilang |
| Add .gitignore | Tilingizni tanlang |
| Choose a license | Ochiq loyiha bo'lsa - MIT yoki Apache 2.0 |
Mavjud loyihani yuklash #
cd mening-loyiham
git init
git add .
git commit -m "Boshlang'ich kommit"
git branch -M main
git remote add origin git@github.com:husanboyqodirov/mening-loyiham.git
git push -u origin main
git status
cat .gitignore
Ochiq repozitoriyga parol, kalit yoki mijoz ma'lumoti tushib qolmasin. GitHub bunday holatlarni avtomatik skanerlaydi va ogohlantiradi - lekin unga tayanmang.
README.md #
Bu loyihangizning yuzi - repozitoriy sahifasida birinchi ko'rinadi.
# Kutubxona tizimi
Maktab kutubxonasi uchun kitob va ijara hisobini yuritish tizimi.
## Imkoniyatlar
- Kitoblar katalogi va qidiruv
- O'quvchilarni ro'yxatga olish
- Ijara berish va qaytarish
- Kechikkan kitoblar hisoboti
## O'rnatish
git clone [email protected]:husanboyqodirov/kutubxona.git
cd kutubxona
composer install
cp .env.example .env
php tools/migrate.php
## Talablar
| Dastur | Versiya |
|--------|---------|
| PHP | 8.1 yoki yuqori |
| MySQL | 5.7 yoki yuqori |
## Litsenziya
MIT
Yuqoridagi misolda o'rnatish buyruqlari to'rt bo'sh joy bilan otstup qilingan - bu Markdown da kod blokini belgilashning ikkinchi usuli.
Haqiqiy README.md faylingizda uch teskari apostrof bilan yozsangiz ham
bo'ladi - GitHub ikkalasini ham tushunadi.
- Nima? - loyiha bir jumlada
- Nima uchun? - qanday muammoni hal qiladi
- Qanday ishga tushiriladi? - o'rnatish qadamlari
- Ekran surati - vizual loyiha bo'lsa
- Litsenziya
Ko'p yaxshi loyihalar shu sabab e'tibordan chetda qoladi: README tushunarsiz yozilgan.
GitHub interfeysi #
Issues - vazifalar va xatolar #
Issue - loyiha bilan bog'liq har qanday muhokama: xato, taklif, savol.
**Muammo tavsifi**
Savat sahifasida jami summa noto'g'ri hisoblanmoqda.
**Qadamlar**
1. Katalogdan ikkita mahsulot qo'shing
2. Birining sonini 3 ga oshiring
3. Savatga o'ting
**Kutilgan natija**
Jami summa: 1 250 000 so'm
**Haqiqiy natija**
Jami summa: 850 000 so'm
**Muhit**
PHP 8.2, Chrome 126, Windows 10
Uchta savolga javob bering:
- Nima qildingiz?
- Nima kutgan edingiz?
- Nima bo'ldi?
Ekran surati yoki xato jurnalini qo'shsangiz - yanada yaxshi.
Yorliqlar (labels) bilan tartibga solish:
| Yorliq | Ma'nosi |
|---|---|
bug | Xato |
enhancement | Yangi imkoniyat taklifi |
documentation | Hujjatlar |
good first issue | Yangi qatnashchilar uchun oson vazifa |
help wanted | Yordam kerak |
wontfix | Tuzatilmaydi |
Kommitni Issue bilan bog'lash #
git commit -m "Savat summasi hisobi tuzatildi
Fixes #42"
Fixes #42, Closes #42 yoki Resolves #42 yozilsa, kommit main ga
tushganda 42-raqamli Issue avtomatik yopiladi.
# Faqat havola qo'yish (yopmasdan)
git commit -m "Savat mantiqi qayta yozildi, #42 ga tegishli"
Profil sozlash #
- Rasm qo'ying - haqiqiy rasm ishonch uyg'otadi
- Bio yozing - kim ekaningiz, nima bilan shug'ullanasiz
- Joylashuv va sayt - agar bo'lsa
- Maxsus README - o'z nomingiz bilan repozitoriy yarating:
# Repozitoriy nomi = foydalanuvchi nomingiz
husanboyqodirov/husanboyqodirov
Undagi README.md profil sahifangizda ko'rinadi.
GitHub Pages - bepul hosting #
Statik saytni bepul joylashtirish:
- Settings → Pages
- Source:
Deploy from a branch - Branch:
main, papka:/ (root)yoki/docs - Save
Bir necha daqiqadan keyin sayt tayyor:
https://husanboyqodirov.github.io/loyiha/
GitHub Pages HTML, CSS, JavaScript ni joylashtiradi. PHP, MySQL va boshqa server tomonidagi texnologiyalar ishlamaydi.
Portfolio, hujjat va HTML darsliklar uchun ideal.
Gist - kichik kod parchalari #
gist.github.com - bitta fayl yoki kod parchasini tez ulashish uchun. To'liq repozitoriy ochish shart emas.
Qidiruv #
language:php stars:>1000 # PHP loyihalar, 1000+ yulduz
user:torvalds # ma'lum foydalanuvchi
filename:.gitignore # fayl nomi bo'yicha
"function hisobla" language:php # kod ichida
label:"good first issue" # boshlovchilar uchun vazifalar
good first issue yorlig'i bilan qidiring - bu maxsus yangi qatnashchilar
uchun ajratilgan oson vazifalar.
Birinchi Pull Request - har bir dasturchi karyerasidagi muhim qadam.
GitHub CLI #
Terminal orqali GitHub bilan ishlash:
# O'rnatish (Windows)
winget install GitHub.cli
# Kirish
gh auth login
# Repozitoriy yaratish
gh repo create kutubxona --public --source=. --push
# Issue lar ro'yxati
gh issue list
# Issue yaratish
gh issue create --title "Savat xatosi" --body "Summa noto'g'ri"
# Pull Request yaratish
gh pr create --title "Savat tuzatildi" --body "Fixes #42"
# PR lar ro'yxati
gh pr list
# PR ni ko'rish
gh pr view 15
Alternativalar #
| Platforma | Xususiyati |
|---|---|
| GitHub | Eng katta jamoa, eng ko'p ochiq loyiha |
| GitLab | Kuchli CI/CD, o'z serveringizga o'rnatish mumkin |
| Bitbucket | Jira bilan chuqur integratsiya |
| Gitea | Yengil, o'z serveringizga oson o'rnatiladi |
| Codeberg | Notijorat, ochiq kodli |
Platforma o'zgarsa ham, git push, git pull, git clone bir xil
ishlaydi. Faqat veb-interfeys va qo'shimcha imkoniyatlar farq qiladi.
Bitta platformani o'rgansangiz, boshqasiga o'tish bir kunlik ish.
- GitHub da hisob yarating va ikki bosqichli autentifikatsiyani yoqing.
- SSH kalit yarating va GitHub ga qo'shing.
ssh -T [email protected]bilan tekshiring.mening-birinchi-loyihamnomli ochiq repozitoriy yarating.- Lokal loyihangizni unga push qiling.
- To'liq
README.mdyozing: tavsif, o'rnatish, talablar. - Bitta Issue yarating va unga
enhancementyorlig'ini qo'ying. Fixes #1yozilgan kommit qiling va push qiling - Issue yopilishini ko'ring.- Profil README ingizni yarating.
good first issuebo'yicha qidiring va o'zingizga mos loyiha toping.
Xulosa #
- GitHub - Git repozitoriylarini saqlash va ulashish uchun eng yirik platforma.
- SSH kalit har safar parol kiritishdan xalos qiladi.
.pub- ochiq kalit (GitHub ga),.pubsiz - maxfiy kalit (hech kimga).- README.md - loyihaning yuzi, unga vaqt ajrating.
- Issues - xatolar, takliflar va vazifalarni boshqarish uchun.
- Kommitda
Fixes #42yozilsa, Issue avtomatik yopiladi. - GitHub Pages - statik saytlar uchun bepul hosting.
- GitHub CLI (
gh) terminaldan chiqmasdan ishlash imkonini beradi. - Git bilim boshqa platformalarda ham to'liq ishlaydi.
Keyingi bo'limda Pull Request jarayoni va kod tekshiruvini o'rganamiz.
O‘qish tarixini saqlamoqchimisiz?
Tizimga kirsangiz, tugatgan bo‘limlaringiz saqlanadi va qoldirgan joyingizdan davom etasiz.
Xatolik topdingizmi?
Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.