Git cherry-pick va patch
Git cherry-pick va patch
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 --continuebuyrug‘ini ishga tushiring.
Kerak bo‘lsa,git cherry-pick --abortbilan 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!
