Git merge ziddiyatlari

Git merge ziddiyatlari


ULASHISH

Merge ziddiyati (conflict) nima?

Merge ziddiyati (merge conflict) ikki branch faylning bir xil qismini o‘zgartirganda yuzaga keladi.

Git qaysi o‘zgarishni saqlab qolishni hal qila olmaydi, shuning uchun tanlovni siz qilishingiz kerak.

Merge’ni yakunlashdan oldin ziddiyatni hal qilishingiz shart.


Merge ziddiyatlari nima uchun yuzaga keladi?

Merge ziddiyatlari odatda fayldagi bir xil qatorlarni o‘zgartirgan branch’larni birlashtirganingizda yuzaga keladi.

Bu hamkorlikdagi loyihalarda yoki uzoq muddat yashaydigan branch’lar bilan ishlaganda keng tarqalgan.


Merge ziddiyatlarini qanday ko‘rish va hal qilish mumkin

Branch’ni birlashtirganingizda ziddiyatli o‘zgarishlar bo‘lsa, Git to‘xtaydi va ziddiyatli fayllarni belgilab qo‘yadi.

Misol: Branch’ni birlashtirish

git merge feature-branch

Agar ziddiyatlar bo‘lsa, Git qaysi fayllarga ta’sir qilganini aytadi.


Qaysi fayllarda ziddiyat borligini ko‘rish

Qaysi fayllar e’tiboringizni talab qilishini ko‘rish uchun git status buyrug‘idan foydalaning:

Misol: Holatni tekshirish

git status


Farqlarni ko‘rish

Nima o‘zgarganini ko‘rish va ziddiyatni qanday hal qilishni aniqlash uchun git diff buyrug‘idan foydalaning:

Misol: Farqlarni ko‘rish

git diff

Ziddiyat belgilarini tahrirlash

Ziddiyatli faylni oching. Quyidagiga o‘xshash bo‘limlarni ko‘rasiz:

Ziddiyat belgilari

<<<<<<< HEAD
Your changes here
=======
Other branch's changes
>>>>>>> feature-branch

Faylning kerakli qismini qoldirib tahrirlang, so‘ng ziddiyat belgilarini (<<<<<<<, =======, >>>>>>>) olib tashlang.


Hal qilingan deb belgilash

Faylni tuzatgandan so‘ng uni hal qilingan deb belgilang:

Misol: Hal qilingan deb belgilash

git add filename.txt

Merge’ni yakunlash

Merge’ni commit bilan yakunlang (agar Git buni avtomatik qilmasa):

Misol: Merge’ni yakunlash

git commit

Merge’ni bekor qilish

Agar merge’ni to‘xtatib, bekor qilmoqchi bo‘lsangiz:

Misol: Merge’ni bekor qilish

git merge --abort

Vizual merge vositasidan foydalanish

Xohlasangiz, ziddiyatlarni hal qilish uchun vizual vositadan foydalanishingiz mumkin:

Misol: Mergetool’dan foydalanish

git mergetool

Bir tomonning o‘zgarishlarini tanlash

Agar faqat o‘z o‘zgarishlaringizni yoki faqat boshqa branch’ning o‘zgarishlarini saqlab qolmoqchi bo‘lsangiz:

Misol: O‘zimizning o‘zgarishlarni saqlash (ours)

git checkout --ours filename.txt

Misol: Ularning o‘zgarishlarini saqlash (theirs)

git checkout --theirs filename.txt

Muammolarni bartaraf etish va eng yaxshi amaliyotlar

  • Agar qiyin ahvolda qolsangiz, qaytadan boshlash uchun har doim git merge --abort buyrug‘idan foydalanishingiz mumkin.
  • Hal qilingan deb belgilashdan oldin barcha ziddiyat belgilarini olib tashlaganingizga ishonch hosil qiling.
  • Agar git mergetool’dan foydalansangiz-u, natija sizga yoqmasa, fayllarni baribir qo‘lda tahrirlashingiz mumkin.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!