Azimjon Abdurasulov

Git for iOS Developers

Darsliklar (Tutorials)

Git for iOS Developers — To'liq Darslik

Mundarija

  1. Git nima va nega kerak?
  2. Git o'rnatish va sozlash
  3. Asosiy buyruqlar (init, add, commit)
  4. Branch (Tarmoqlanish)
  5. Merge va Rebase
  6. Remote Repository (GitHub, GitLab)
  7. Pull Request (PR) va Code Review
  8. Git Workflow'lar (GitFlow)
  9. [.gitignore — iOS loyiha uchun muhim qadam](#gitignore)
  10. Merge Conflict hal qilish (xcodeproj muammosi)
  11. Git Stash va Cherry-pick
  12. 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}

  1. **git init**: Yangi loyihada gitni boshlash.
  2. **git status**: O'zgarishlarni ko'rish.
  3. **git add .**: Barcha o'zgarishlarni "staging" (tayyorgarlik) maydoniga o'tkazish.
  4. **git commit -m "Xabar"**: O'zgarishlarni muhrlash.
  5. **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 main ning 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, hotfix branchlari bilan ishlash tizimi.
  • Trunk-based: Kamroq branch, tez-tez main ga 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 pull qilib turishni unutmang!

Vazifa: GitHub'da repozitoriy oching va birinchi iOS loyihangizni yuklang! 🐙

Markdown manba

iOS Lessons