Git kursi
Version control tizimi. Kod tarixini boshqarish, branch, merge va hamkorlik.
Boshlang'ich · 55 ta dars · ~3 hafta
Mavzular: Git asoslari, Commit, Branch, Merge, Rebase, Remote, GitHub, Pull Request, Conflict Resolution, Git Flow
Kirish va O'rnatish
- Git nima? Version Control nima uchun kerak, Git tarixi
- Git o'rnatish — Windows, Mac, Linux. Git Bash, Terminal sozlash
- Git sozlash — git config, username, email, default editor
- GitHub nima? Git va GitHub farqi. Account, SSH key sozlash
Git Asoslari
- Repository — git init, loyiha tuzilishi, .git papkasi ichida nima bor
- Working Directory, Staging Area, Repository — uchala zona va farqi
- git add — fayllarni staging ga qo'shish, . va fayl nomi farqi
- git commit — commit nima, yaxshi commit xabari qanday yoziladi
- git status va git log — o'zgarishlarni va tarixni ko'rish
- git diff — working directory, staging, commit lar orasida solishtirish
- .gitignore — qaysi fayllarni kuzatmaslik, shablonlar, global gitignore
Branch va Merge
- Branch nima va nima uchun kerak — parallel ishlash tushunchasi
- git branch — branch yaratish, ko'rish, o'chirish
- git checkout va git switch — branch lar orasida o'tish
- git merge — Fast-forward va 3-way merge, farqlari
- Merge Conflict — nima uchun chiqadi, qanday hal qilinadi
- git rebase — nima, merge dan farqi, qachon ishlatiladi
- git stash — o'zgarishlarni vaqtincha saqlash, list, pop, drop
GitHub bilan ishlash
- git remote — remote nima, add, remove, -v
- git clone — remote loyihani yuklab olish, HTTPS va SSH farqi
- git push — o'zgarishlarni GitHub ga yuborish, upstream sozlash
- git pull va git fetch — farqi, qachon qaysinisini ishlatish kerak
- Pull Request — nima, qanday ochiladi, code review jarayoni
- Fork — nima, qachon kerak, fork workflow
- Issue — loyihada muammo bildirish, label, assignee, milestone
Git Tarixini Boshqarish
- git commit --amend — oxirgi commitni o'zgartirish
- git reset — soft, mixed, hard — farqlari va qachon ishlatiladi
- git revert — commitni bekor qilish, reset dan farqi
- git cherry-pick — boshqa branch dan bitta commit olish
- git bisect — xatoni qaysi commitda paydo bo'lganini topish
- git reflog — yo'qolgan commitlarni tiklash
Professional Git Workflow
- Gitflow — main, develop, feature, release, hotfix branch lari
- GitHub Flow — soddaroq workflow, qachon mos keladi
- Conventional Commits — commit xabarlarini standartlashtirish
- Semantic Versioning — major, minor, patch versiyalash
- git tag — versiyalarni belgilash, lightweight va annotated tag
- Monorepo da Git — katta loyihalarda ishlash
GitHub Imkoniyatlari
- GitHub Actions — CI/CD asoslari, workflow fayli tuzilishi
- GitHub Actions — avtomatik test va deploy
- GitHub Pages — statik saytni deploy qilish
- GitHub Releases — versiya chiqarish, changelog
- GitHub Projects — loyiha boshqarish, Kanban board
- GitHub Packages — paket chiqarish va saqlash
- GitHub Secrets — maxfiy ma'lumotlarni saqlash
Ilg'or Git
- Submodule — loyiha ichida boshqa loyiha
- git worktree — bir vaqtda bir nechta branch bilan ishlash
- git hook — commit, push oldidan avtomatik ishlar bajarish
- git archive — loyihani arxivlash
- Bare Repository — server uchun repository
Amaliy va Professional mavzular
- SSH key — yaratish, GitHub ga ulash, agent sozlash
- GPG key — commitlarni imzolash, verified badge
- .gitattributes — fayl turlari, line ending, diff sozlash
- Git LFS — katta fayllar bilan ishlash
- GitHub CLI — gh tool bilan terminaldan GitHub boshqarish
- Git GUI — GitKraken, SourceTree, VS Code Git integration