Interactive Rebase
Interactive Rebase
Chuỗi commit wip, oops, fix typo trông xấu trong pull request? Interactive rebase biến chúng thành một lịch sử gọn gàng trước khi merge.
1. Interactive rebase là gì?
git rebase -i HEAD~N mở một todo list liệt kê N commit gần nhất (cũ trên, mới dưới), mỗi dòng bắt đầu bằng một lệnh để bạn viết lại lịch sử.
git rebase -i HEAD~4
2. Các lệnh chính
| Lệnh | Tác dụng |
|---|---|
pick | Giữ nguyên commit |
reword | Sửa message |
squash | Gộp lên trên, giữ message |
fixup | Gộp lên trên, bỏ message |
drop | Xóa commit |
| đổi thứ tự dòng | Sắp xếp lại commit |
pick a1b2c3d Add login form
fixup e4f5g6h fix typo
squash i7j8k9l add validation
3. Lưu ý quan trọng
Rebase tạo hash mới — viết lại lịch sử. Chỉ dùng trên commit chưa push hoặc nhánh riêng; tránh rebase nhánh người khác đã pull.
Cách nhớ nhanh
Interactive rebase = biên tập lịch sử commit. Nhớ cặp đôi: squash giữ message, fixup bỏ message. Chỉ rebase commit chưa chia sẻ.