Git merge ziddiyatlari
Git merge ziddiyatlari
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 --abortbuyrug‘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!
