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í | Merge | Rebase |
|---|---|---|
| Lịch sử | Có nhánh, đúng thật | Thẳng, sạch |
| Merge commit | Có | Không |
| Hash | Giữ nguyên | Tạo mới |
| An toàn khi đã chia sẻ | Có | 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.