5 phút đọc

Merge vs Rebase

Merge vs Rebase

Khi cần đưa thay đổi từ branch này sang branch khác, Git cho bạn hai lựa chọn với triết lý khác nhau.

1. Merge

Merge gộp branch khác vào branch hiện tại, giữ nguyên lịch sử thật. Khi hai branch đã phân kỳ, Git tạo một merge commit có hai commit cha → lịch sử có nhánh.

2. Rebase

Rebase phát lại các commit của branch lên một gốc mới, cho ra lịch sử thẳng, không merge commit. Vì commit được tạo lại nên chúng có hash mới — tức là lịch sử bị viết lại.

Tiêu chíMergeRebase
Lịch sửCó nhánh, đúng thậtThẳng, sạch
Merge commitKhông
HashGiữ nguyênTạo mới
An toàn khi đã chia sẻKhông

Cách nhớ nhanh

Merge = ghi lại sự thật (có nhánh). Rebase = kể lại gọn hơn (đường thẳng, hash mới). Đã chia sẻ commit thì merge, đừng rebase.