Rebase trong Git: vì sao nó viết lại lịch sử — chứng minh bằng SHA thật
Nhiều người dùng rebase mà không hiểu nó khác merge chỗ nào, rồi hoảng khi thấy commit 'biến mất'. Sự thật: rebase KHÔNG di chuyển commit cũ — nó tạo commit MỚI với SHA khác vì đổi parent. Bài này chứng minh bằng lệnh thật: cùng nội dung, cùng message, nhưng SHA đổi hoàn toàn; lịch sử thẳng thay vì rẽ nhánh; và commit cũ vẫn nằm trong reflog để cứu.