11-bo‘lim

GitHub bilan ishlash

Hisob yaratish, SSH kalit sozlash, repozitoriy ochish, README yozish va GitHub imkoniyatlari bilan tanishish.

🕑 15 daqiqa o‘qish 📄 1 054 so‘z 👁 5 marta ko‘rilgan
Ushbu bo‘lim mundarijasi
  1. Hisob yaratish
  2. SSH kalit sozlash
  3. 1. Kalit yaratish
  4. 2. Ochiq kalitni nusxalash
  5. 3. GitHub ga qo'shish
  6. 4. Tekshirish
  7. Repozitoriy yaratish
  8. Mavjud loyihani yuklash
  9. README.md
  10. GitHub interfeysi
  11. Issues - vazifalar va xatolar
  12. Kommitni Issue bilan bog'lash
  13. Profil sozlash
  14. GitHub Pages - bepul hosting
  15. Gist - kichik kod parchalari
  16. Qidiruv
  17. GitHub CLI
  18. Alternativalar
  19. Xulosa

GitHub - dunyodagi eng yirik kod platformasi. Unda 100 milliondan ortiq repozitoriy va 100 milliondan ortiq foydalanuvchi bor.

Hisob yaratish #

  1. github.com saytiga kiring
  2. Sign up tugmasini bosing
  3. Email, parol va foydalanuvchi nomini kiriting
  4. Emailni tasdiqlang
Foydalanuvchi nomini o'ylab tanlang

Bu sizning professional identifikatoringiz bo'ladi. U rezyumeda, vizitkada va profil havolasida ko'rinadi:

Natija
github.com/husanboyqodirov

Yaxshi: dkarimova, husanboy-dev, husanboyk

Yomon: xXx_koder_2005_xXx, test123, asdasd

Nomni keyin o'zgartirish mumkin, lekin eski havolalar buziladi.

Ikki bosqichli autentifikatsiyani yoqing

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 #

Terminal
ssh-keygen -t ed25519 -C "[email protected]"
Natija
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:

Terminal
ssh-keygen -t rsa -b 4096 -C "[email protected]"

2. Ochiq kalitni nusxalash #

Terminal
cat ~/.ssh/id_ed25519.pub
Natija
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH8kL2mN9pQ4rS7tU0vW3xY6zA1bC4dE7fG0hI [email protected]
Terminal
# 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 bermang

id_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 #

Terminal
ssh -T git@github.com
Natija
Hi husanboyqodirov! You've successfully authenticated, but GitHub does not
provide shell access.
HTTPS dan SSH ga o'tish

Mavjud loyihada:

Terminal
git remote set-url origin git@github.com:husanboyqodirov/loyiha.git
git remote -v

Repozitoriy yaratish #

New tugmasi yoki github.com/new

MaydonIzoh
Repository nameKichik harflar, chiziqcha bilan: kutubxona-tizimi
DescriptionBir jumlada loyiha nima qilishini yozing
Public / PrivateOchiq yoki yopiq
Add a READMEBoshlovchilar uchun - belgilang
Add .gitignoreTilingizni tanlang
Choose a licenseOchiq loyiha bo'lsa - MIT yoki Apache 2.0

Mavjud loyihani yuklash #

Terminal
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
Push qilishdan oldin tekshiring
Terminal
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.

MARKDOWN
# 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
Markdown ichida kod bloki

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.

Yaxshi README nimadan iborat?
  1. Nima? - loyiha bir jumlada
  2. Nima uchun? - qanday muammoni hal qiladi
  3. Qanday ishga tushiriladi? - o'rnatish qadamlari
  4. Ekran surati - vizual loyiha bo'lsa
  5. Litsenziya

Ko'p yaxshi loyihalar shu sabab e'tibordan chetda qoladi: README tushunarsiz yozilgan.

GitHub interfeysi #

husanboyqodirov / kutubxona Star 24 Fork 7 Watch 3 Code Issues Pull requests Actions Projects Wiki Code - fayllar, tarmoqlar, kommitlar va relizlar Issues - xatolar, takliflar va vazifalar Pull requests - kod tekshiruvi va birlashtirish so'rovlari Actions - avtomatik testlar va deploy (CI/CD) Projects - kanban doskasi bilan vazifalarni boshqarish
GitHub - shunchaki fayl ombori emas, to'liq ish muhiti

Issues - vazifalar va xatolar #

Issue - loyiha bilan bog'liq har qanday muhokama: xato, taklif, savol.

MARKDOWN
**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
Issue yozishning oltin qoidasi

Uchta savolga javob bering:

  1. Nima qildingiz?
  2. Nima kutgan edingiz?
  3. Nima bo'ldi?

Ekran surati yoki xato jurnalini qo'shsangiz - yanada yaxshi.

Yorliqlar (labels) bilan tartibga solish:

YorliqMa'nosi
bugXato
enhancementYangi imkoniyat taklifi
documentationHujjatlar
good first issueYangi qatnashchilar uchun oson vazifa
help wantedYordam kerak
wontfixTuzatilmaydi

Kommitni Issue bilan bog'lash #

Terminal
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.

Terminal
# Faqat havola qo'yish (yopmasdan)
git commit -m "Savat mantiqi qayta yozildi, #42 ga tegishli"

Profil sozlash #

Profilingiz - rezyumeningiz
  1. Rasm qo'ying - haqiqiy rasm ishonch uyg'otadi
  2. Bio yozing - kim ekaningiz, nima bilan shug'ullanasiz
  3. Joylashuv va sayt - agar bo'lsa
  4. Maxsus README - o'z nomingiz bilan repozitoriy yarating:
Terminal
# Repozitoriy nomi = foydalanuvchi nomingiz
husanboyqodirov/husanboyqodirov

Undagi README.md profil sahifangizda ko'rinadi.

GitHub Pages - bepul hosting #

Statik saytni bepul joylashtirish:

  1. Settings → Pages
  2. Source: Deploy from a branch
  3. Branch: main, papka: / (root) yoki /docs
  4. Save

Bir necha daqiqadan keyin sayt tayyor:

Natija
https://husanboyqodirov.github.io/loyiha/
Faqat statik sayt

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 #

Natija
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
Ochiq loyihaga hissa qo'shish

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:

Terminal
# 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 #

PlatformaXususiyati
GitHubEng katta jamoa, eng ko'p ochiq loyiha
GitLabKuchli CI/CD, o'z serveringizga o'rnatish mumkin
BitbucketJira bilan chuqur integratsiya
GiteaYengil, o'z serveringizga oson o'rnatiladi
CodebergNotijorat, ochiq kodli
Git hamma joyda bir xil

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.

Amaliy topshiriq
  1. GitHub da hisob yarating va ikki bosqichli autentifikatsiyani yoqing.
  2. SSH kalit yarating va GitHub ga qo'shing.
  3. ssh -T [email protected] bilan tekshiring.
  4. mening-birinchi-loyiham nomli ochiq repozitoriy yarating.
  5. Lokal loyihangizni unga push qiling.
  6. To'liq README.md yozing: tavsif, o'rnatish, talablar.
  7. Bitta Issue yarating va unga enhancement yorlig'ini qo'ying.
  8. Fixes #1 yozilgan kommit qiling va push qiling - Issue yopilishini ko'ring.
  9. Profil README ingizni yarating.
  10. good first issue bo'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), .pub siz - maxfiy kalit (hech kimga).
  • README.md - loyihaning yuzi, unga vaqt ajrating.
  • Issues - xatolar, takliflar va vazifalarni boshqarish uchun.
  • Kommitda Fixes #42 yozilsa, 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.

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.