Junior
Git yordamida bir nechta commitlarni qanday qilib bitta qilish mumkin?
sobes.tech AI
AIdan javob
Git yordamida bir nechta commitlarni birlashtirish uchun git rebase -i <commit-ish> komandasi ishlatiladi.
- Birlashtirmoqchi bo'lgan commitgacha bo'lgan commitni aniqlang. Bu commit hash, tarmoq yoki teg bo'lishi mumkin.
git rebase -i <commit-ish>komandasini bajaring. Masalan, oxirgi 3 commitni birlashtirish uchun:git rebase -i HEAD~3- Commitlar ro'yxati bilan matn muharriri ochiladi. Ro'yxatdagi birinchi commit (yuqorida)
pickso'ziga ega bo'lishi kerak. Birlashtirmoqchi bo'lgan boshqa commitlarpicko'rnigasquashyokisga o'zgartirilishi kerak.pick abcd123 Dastlabki commit squash efgh456 A funksiyasining 1-qismi squash ijkl789 A funksiyasining 2-qismi ... - Muharrirni saqlang va yoping.
- Yangi commit uchun xabar yozish uchun muharrir ochiladi. Xabarlarni birlashtiring yoki tahrirlang, shunda yangi birlashtirilgan commit uchun mantiqiy xabar yaratiladi.
// Yangi birlashtirilgan commit uchun xabar // Bu 3 commitning kombinatsiyasidir. // Dastlabki commit // A funksiyasining 1-qismi // A funksiyasining 2-qismi - Muharrirni saqlang va yoping. Git commitlarni birlashtiradi.
Agar siz ishlayotgan tarmoq allaqachon uzoqdagi repozitoriyga yuborilgan bo'lsa, -f yoki --force-with-lease bayrog'i bilan majburan push qilish kerak bo'ladi.
git push origin <sizning_tarmogingiz> -f
Bu commit tarixini o'zgartirganligi uchun zarur. Majburan push qilish xavfli bo'lishi mumkin, agar boshqa dasturchilar bu tarmoqda ishlayotgan bo'lsa. Har doim majburan push qilish mumkinligini tekshiring.
Alternativ ravishda, --fixup va --autosquash bayroqlaridan foydalanib, keyin git rebase -i --autosquash <commit-ish> komandasini bajarib, avtomatik ravishda birlashtirish mumkin.