015 — Git Rebase vs Merge: Khi Nào Tuyệt Đối Không Rebase?
Caption
Git Rebase vs Git Merge: Đẹp lịch sử hay Giữ an toàn cho cả team?
Sự khác biệt cốt lõi:
-
Git Merge (
git merge feature):
- Tạo một commit mới (Merge Commit) có 2 commit cha.
- Lịch sử trung thực 100%, không bao giờ thay đổi các commit cũ.
- Nhược điểm: Lịch sử git đồ thị nhìn rất rối rắm nếu team có nhiều người cùng làm. -
Git Rebase (
git rebase main):
- Bê toàn bộ các commit của nhánh feature đặt lên ngọn nhánh main.
- Lịch sử thẳng tắp (Linear History), cực kỳ dễ đọc và tra cứu lỗi bằnggit bisect.
- RỦI RO TỐI CAO: Rebase thay đổi Commit Hash cũ.
🚨 Quy tắc vàng không thể phá vỡ:
Chỉ Rebase trên nhánh cá nhân local của bạn trước khi tạo Pull Request. Một khi code đã được push lên nhánh chung của tập thể (main/develop), CẤM dùng Rebase!
