Git rebase

Git rebase


ULASHISH

Git rebase nima?

Rebase qilish commit’lar ketma-ketligini yangi asos commit’ga ko‘chiradi yoki birlashtiradi.

U ko‘pincha loyiha tarixini toza va chiziqli holda saqlash uchun ishlatiladi.

Rebase keraksiz merge commit’larning oldini olib, commit tarixingizni o‘qishni osonlashtirishi mumkin.


Git rebase’dan qachon foydalanish kerak

Git rebase’dan quyidagilar uchun foydalaning:

  • Loyiha tarixini toza va chiziqli saqlash
  • Keraksiz merge commit’larning oldini olish
  • Bir nechta commit’ni bittaga birlashtirish
  • Commit’larni tahrirlash yoki tartibini o‘zgartirish

Oddiy rebase

Joriy branch’ingizni boshqa branch ustiga ko‘chirish uchun (masalan, funksiya branch’ingizni eng so‘nggi main bilan yangilash):

Misol: main ustiga rebase qilish

git checkout feature-branch
git rebase main

Bu funksiya branch’ingizdagi o‘zgarishlarni eng so‘nggi main branch’i ustiga qayta qo‘llaydi.



Interaktiv rebase

git rebase -i <base> ma’lum bir nuqtagacha bo‘lgan commit’larni tahrirlash, tartibini o‘zgartirish, squash yoki fixup qilish imkonini beradi.

Bu commit tarixingizni boshqalar bilan ulashishdan oldin tartibga keltirish uchun foydali.

Misol: Interaktiv rebase’ni boshlash

git rebase -i HEAD~3

Bu muharrirni ochadi, unda quyidagilarni qilishingiz mumkin:

  • pick: commit’ni o‘z holicha qoldirish
  • squash: commit’larni birlashtirish
  • edit: commit’ni o‘zgartirish uchun to‘xtash
  • reword: faqat commit xabarini o‘zgartirish

Quyidagi qadamlarni bajaring:

  1. Commit xabarini tahrirlang yoki amalni tanlang (pick, squash, edit, reword)
  2. Muharrirni saqlang va yoping
  3. Git o‘zgarishlarni qo‘llaydi va natijalarni ko‘zdan kechirish imkonini beradi

Davom ettirish, bekor qilish yoki o‘tkazib yuborish

Agar ziddiyatga duch kelsangiz yoki commit’ni tahrirlashni yakunlashingiz kerak bo‘lsa, muammoni hal qilgach, git rebase --continue buyrug‘idan foydalaning.

Bu Git’ga rebase jarayonini davom ettirishni bildiradi.

Misol

git add fixed_file.txt
git rebase --continue

Agar biror narsa noto‘g‘ri ketsa yoki rebase’ni to‘xtatmoqchi bo‘lsangiz, git rebase --abort buyrug‘idan foydalaning.

Bu branch’ingizni rebase boshlanishidan oldingi holatiga qaytaradi.

Misol

git rebase --abort

Agar rebase davomida commit’ni tuzata olmasangiz (masalan, ziddiyatni hal qilib bo‘lmasa), uni git rebase --skip yordamida o‘tkazib yuborishingiz mumkin.

Git o‘sha commit’ni tashlab, keyingisiga o‘tadi.

Misol

git rebase --skip

O‘zgarishlarni ko‘zdan kechirish

Rebase’ni yakunlagandan so‘ng hammasi to‘g‘ri ekaniga ishonch hosil qilish uchun o‘zgarishlaringizni ko‘zdan kechiring.


Maslahatlar va eng yaxshi amaliyotlar

Rebase commit tarixini qayta yozadi.

Umumiy repozitoriyga allaqachon push qilgan commit’laringizni rebase qilishdan saqlaning.

Ma’lum bir nuqtagacha bo‘lgan commit’larni tahrirlash, tartibini o‘zgartirish, squash yoki fixup qilish uchun git rebase -i buyrug‘idan foydalaning.

Ziddiyatlarni hal qilgandan so‘ng rebase’ni davom ettirish uchun git rebase --continue buyrug‘idan foydalaning.

Davom etayotgan rebase’ni bekor qilish uchun git rebase --abort buyrug‘idan foydalaning.


Muammolarni bartaraf etish

Agar rebase davomida ziddiyatlarga duch kelsangiz, ularni hal qiling, so‘ng rebase jarayonini davom ettirish uchun git rebase --continue buyrug‘idan foydalaning.

Agar rebase davomida commit’ni tuzata olmasangiz, uni o‘tkazib yuborish uchun git rebase --skip buyrug‘idan foydalaning.


Eslatma: Rebase commit tarixini qayta yozadi.

Umumiy repozitoriyga allaqachon push qilgan commit’laringizni rebase qilishdan saqlaning.




W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!