تفاوت git rebase و git merge در این است که در git rebase هیچ تاریخچه ای از commit ها در branch فرعی وجود ندارد، در واقع آن commit ها پاک شده و هر کدام با id جدید بر روی branch اصلی (آخرین آپدیت) apply میشود. این به چه دردی می خوره:
فرض کنید که از branch اصلی یک branch میگیریم و روی آن تغییراتی میدهیم همزمان شخصی دیگر branch اصلی را تغییر داده و ما متوجه میشویم اولا بهتر است تغییرات ما بعد از آخرین آپدیت branch اصلی اعمال شود ثانیا تاریخچه commit های ما پیچیدگی اضافه میکند و توضیحات اضافی است و بهتر است مستقیم بر روی branch اصلی (آخرین آپدیت) اعمال شود. در این حالت بهتر است از git rebase استفاده کنیم.