Git cherry-pick va patch

Git cherry-pick va patch


ULASHISH

Cherry-pick nima?

Cherry-pick bitta commit’ni bir branch’dan boshqasiga nusxalash imkonini beradi. Bu boshqa branch’dagi hamma narsani emas, faqat bitta (yoki bir nechta) o‘zgarishni olmoqchi bo‘lganingizda foydali.


Patch nima?

Patch — bir yoki bir nechta commit’dagi o‘zgarishlarni o‘z ichiga olgan fayl. Patch’ni ulashishingiz yoki uni boshqa repozitoriyga, hatto o‘zingiznikiga aloqasi bo‘lmagan repozitoriyga ham qo‘llashingiz mumkin.


Qaysi birini qachon ishlatish kerak

  • Bir repozitoriy ichidagi branch’lar o‘rtasida commit’ni nusxalash uchun cherry-pick’dan foydalaning.
  • O‘zgarishlarni fayl sifatida ulashish yoki turli repozitoriylar bilan ishlash uchun patch’lardan foydalaning.

Commit’ni qanday cherry-pick qilish mumkin

Boshqa branch’dagi muayyan commit’ni joriy branch’ingizga nusxalang:

Misol: Commit’ni cherry-pick qilish

git cherry-pick abc1234

Bu branch’ingizda xuddi shu o‘zgarishlarga ega yangi commit yaratadi.



Commit xabarini tahrirlash

Cherry-pick qilish vaqtida commit xabarini o‘zgartirish uchun --edit parametridan foydalaning:

Misol: Commit xabarini tahrirlash

git cherry-pick abc1234 --edit

Commit qilmasdan qo‘llash

O‘zgarishlarni qo‘llash, lekin hali commit yaratmaslik uchun --no-commit (yoki -n) parametridan foydalaning. Bu commit qilishdan oldin yana o‘zgarishlar kiritish imkonini beradi:

Misol: Commit’siz cherry-pick qilish

git cherry-pick abc1234 --no-commit

Commit manbasini qo‘shish

Commit xabariga commit qayerdan kelganini ko‘rsatuvchi qator qo‘shish uchun -x parametridan foydalaning:

Misol: Manba ko‘rsatilgan cherry-pick

git cherry-pick abc1234 -x

Ziddiyatlarni hal qilish

Agar ziddiyatlar bo‘lsa, Git to‘xtaydi va ularni tuzatishingizni so‘raydi. Tuzatgandan so‘ng quyidagini ishga tushiring:

Misol: Ziddiyatdan keyin davom ettirish

git add .
git cherry-pick --continue

Cherry-pick’ni bekor qilish uchun quyidagidan foydalaning:

Misol: Cherry-pick’ni bekor qilish

git cherry-pick --abort

Patch’ni qanday yaratish mumkin

Commit’dan patch fayl yarating:

Misol: Patch yaratish

git format-patch -1 abc1234

Bir nechta commit uchun:

Misol: Bir nechta commit

git format-patch HEAD~3

Patch’ni qanday qo‘llash mumkin

Patch faylni joriy branch’ingizga qo‘llang:

Misol: Patch’ni qo‘llash

git apply 0001-some-change.patch

Patch’ni metama’lumotlarni saqlagan holda qo‘llash

Patch’ni asl muallif va xabarni saqlagan holda qo‘llash uchun git am buyrug‘idan foydalaning:

Misol: Patch’ni metama’lumotlar bilan qo‘llash

git am 0001-some-change.patch

Patch’ni teskari qo‘llash

Patch fayldagi o‘zgarishlarni bekor qiling:

Misol: Patch’ni teskari qo‘llash

git apply -R 0001-some-change.patch

Maslahat: Bir repozitoriy ichida bitta commit’ni nusxalash uchun cherry-pick’dan foydalaning.

O‘zgarishlarni fayl sifatida ulashish yoki repozitoriylar o‘rtasida ishlash uchun patch’lardan foydalaning.

Agar commit tarixi va mualliflarni saqlab qolmoqchi bo‘lsangiz, git apply o‘rniga git am buyrug‘idan foydalaning.


Muammolarni bartaraf etish va eng yaxshi amaliyotlar

  • Cherry-pick ziddiyatlari: Agar ziddiyatlar yuzaga kelsa, ularni tuzating, so‘ng git cherry-pick --continue buyrug‘ini ishga tushiring.
    Kerak bo‘lsa, git cherry-pick --abort bilan bekor qiling.
  • Patch muammosiz qo‘llanmayapti: Patch kod bazangizga mos kelishiga ishonch hosil qiling. Ba’zan uni qo‘lda moslashtirish kerak bo‘lishi mumkin.
  • Branch’laringizni dolzarb holda saqlang: Cherry-pick qilish yoki patch’larni qo‘llashdan oldin eng so‘nggi o‘zgarishlarni pull qiling.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!