Sobes.tech
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.

  1. Birlashtirmoqchi bo'lgan commitgacha bo'lgan commitni aniqlang. Bu commit hash, tarmoq yoki teg bo'lishi mumkin.
  2. git rebase -i <commit-ish> komandasini bajaring. Masalan, oxirgi 3 commitni birlashtirish uchun:
    git rebase -i HEAD~3
    
  3. Commitlar ro'yxati bilan matn muharriri ochiladi. Ro'yxatdagi birinchi commit (yuqorida) pick so'ziga ega bo'lishi kerak. Birlashtirmoqchi bo'lgan boshqa commitlar pick o'rniga squash yoki s ga o'zgartirilishi kerak.
    pick abcd123 Dastlabki commit
    squash efgh456 A funksiyasining 1-qismi
    squash ijkl789 A funksiyasining 2-qismi
    ...
    
  4. Muharrirni saqlang va yoping.
  5. 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
    
  6. 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.