Sobes.tech
Junior

Git'da nizolarni qanday hal qilish mumkin?

sobes.tech AI

AIdan javob

Git'da nizolar, agar ikki ishtirokchi bir xil fayl bo'lagini o'zgartirsa yoki biri faylni o'chirib, ikkinchisi esa o'zgartirsa, yuzaga keladi.

Nizolarni hal qilish uchun odatda quyidagi bosqichlar bajariladi:

  1. Mahalliy repozitoriyani yangilash: Sizda eng so'nggi kod versiyasi bo'lishiga ishonch hosil qiling.

    // Uzatmadan so'nggi o'zgarishlarni olish
    git pull origin <branch-name>
    
  2. Nizo yuzaga kelgan fayllarni aniqlash: Git qaysi fayllarda nizolar borligini bildiradi.

    // Repozitoriyaning holatini va nizoli fayllarni ko'rsatish
    git status
    

    Fayllarda nizolar belgilari ko'rinadi, masalan:

    <<<<<<< HEAD
    // Sizning mahalliy o'zgarishlaringiz
    =======
    // Uzatmadan kelayotgan o'zgarishlar
    >>>>>>> <commit-hash>
    
    • <<<<<<< HEAD: mahalliy o'zgarishlar boshlanishi.
    • =======: o'zgarishlar orasidagi ajratuvchi.
    • >>>>>>> <commit-hash>: kelayotgan o'zgarishlar va commit hash.
  3. Fayllarni qo'lda tahrirlash: Nizoli faylni matn tahrirlagichda oching va nizolar belgilari bilan belgilangan joylarni qo'lda o'chiring, faqat kerakli kodni qoldiring. Qaysi versiyani saqlash yoki ikkisini birlashtirishni hal qiling.

  4. Tuzatilgan fayllarni qo'shish: Faylni hal qilgach, uni indeksga qo'shing.

    // Tuzatilgan faylni indeksga qo'shish
    git add <conflicted-file>
    

    Bu bosqichni barcha nizoli fayllar uchun takrorlang.

  5. Nizo hal qilish uchun commit yaratish: Barcha tuzatilgan fayllarni qo'shgach, commit yarating. Git avtomatik ravishda nizoni hal qilish haqida xabar taklif qiladi.

    // Nizo hal qilish uchun commit yaratish
    git commit
    

    Bu xabarni saqlashdan oldin tahrirlashingiz mumkin.

  6. O'zgarishlarni yuborish: Hal qilingan o'zgarishlarni uzatish uchun yuboring.

    // O'zgarishlarni uzatish
    git push origin <branch-name>
    

Nizo hal qilish uchun vositalar:

Quyidagi grafik birlashtirish vositalaridan foydalanish mumkin:

  • Kdiff3
  • Meld
  • VS Code Birlashtirish Tahrirchisi
  • IDElar (IntelliJ IDEA, PyCharm va boshqalar) bilan o'rnatilgan vositalar

Tashqi vositani sozlash uchun:

// Tashqi birlashtirish vositasini sozlash (misol uchun opendiff uchun)
git config --global merge.tool opendiff
// Vositani ishga tushirish
git mergetool

E'tibor bering, uzatmadan o'zgarishlarni o'z vaqtida olish (git pull) nizolar sonini kamaytirishga yordam beradi.