Git for iOS Developers
Darsliklar (Tutorials)
Git for iOS Developers — To'liq Darslik
Mundarija
- Git nima va nega kerak?
- Git o'rnatish va sozlash
- Asosiy buyruqlar (init, add, commit)
- Branch (Tarmoqlanish)
- Merge va Rebase
- Remote Repository (GitHub, GitLab)
- Pull Request (PR) va Code Review
- Git Workflow'lar (GitFlow)
- [
.gitignore— iOS loyiha uchun muhim qadam](#gitignore) - Merge Conflict hal qilish (xcodeproj muammosi)
- Git Stash va Cherry-pick
- Xulosa
1. Git nima va nega kerak? {#motivatsiya}
Git — bu Versiyalarni boshqarish tizimi (Version Control System).
- Vaqt mashinasi: Loyihaning istalgan oldingi holatiga qaytish mumkin.
- Jamoaviy ish: Bir nechta dasturchi bitta faylda parallel ishlashi mumkin.
- Tajriba maydoni: Asosiy kodni buzmasdan yangi funksiyalarni test qilib ko'rish mumkin.
2. Git o'rnatish va sozlash {#setup}
Terminalda quyidagilarni sozlang:
git config --global user.name "Sizning Ismingiz"
git config --global user.email "sizning@emailingiz.com"
3. Asosiy buyruqlar {#basic-commands}
- **
git init**: Yangi loyihada gitni boshlash. - **
git status**: O'zgarishlarni ko'rish. - **
git add .**: Barcha o'zgarishlarni "staging" (tayyorgarlik) maydoniga o'tkazish. - **
git commit -m "Xabar"**: O'zgarishlarni muhrlash. - **
git log**: Tarixni ko'rish.
4. Branch (Tarmoqlanish) {#branching}
Asosiy kod (main) doimo barqaror bo'lishi kerak. Har bir yangi funksiya uchun alohida tarmoq ochiladi.
git checkout -b feature/login-screen # Yangi branch ochish va unga o'tish
git switch main # Main branch'ga qaytish
5. Merge va Rebase {#merge-rebase}
- Merge: Ikki tarmoq tarixini birlashtiradi. Tarixda birlashgan nuqta ko'rinadi.
- Rebase: Ishingizni xuddi
mainning oxiridan boshlangandek qilib ko'chiradi. Tarixni toza saqlaydi.
6. Remote Repository (GitHub, GitLab) {#remote}
Loyihangiz serverda (cloud) saqlanishi kerak:
git remote add origin https://github.com/user/project.git
git push -u origin main # Serverga yuklash
git pull # Serverdan yangi o'zgarishlarni olish
7. Pull Request (PR) va Code Review {#pull-request}
Siz yozgan kodni jamoa ko'rib chiqishi (review) uchun PR ochasiz. Senior dasturchilar "Approved" bergandan keyingina kod main ga qo'shiladi.
8. Git Workflow'lar (GitFlow) {#workflows}
- GitFlow:
master,develop,feature,release,hotfixbranchlari bilan ishlash tizimi. - Trunk-based: Kamroq branch, tez-tez
mainga merge qilish.
9. .gitignore — iOS loyiha uchun muhim qadam {#gitignore}
Har bir iOS loyihada ba'zi fayllar serverga yuklanmasligi shart (masalan, DerivedData, Pods, .DS_Store). Buning uchun loyiha ildizida .gitignore fayli bo'lishi kerak.
10. Merge Conflict hal qilish (xcodeproj muammosi) {#conflicts}
Eng ko'p uchraydigan muammo — .xcodeproj faylidagi konflikt.
- Yechim: Konfliktni terminal yoki Xcode ning o'zida hal qiling. Murakkab bo'lsa, Tuist kabi vositalaridan foydalanib konfliktlarni butunlay yo'q qilish mumkin.
11. Git Stash va Cherry-pick {#advanced}
- Stash: O'zgarishlarni commit qilmasdan vaqtincha bir chekkaga olib qo'yish.
- Cherry-pick: Boshqa branchdagi bitta aniq commitni o'z branchingizga ko'chirib olish.
12. Xulosa {#xulosa}
Git bilmagan dasturchi — professional emas.
- Branch nomlarini chiroyli qo'ying (
feature/,bugfix/). - Commit xabarlarini tushunarli yozing.
- Tez-tez
pullqilib turishni unutmang!
Vazifa: GitHub'da repozitoriy oching va birinchi iOS loyihangizni yuklang! 🐙