Get in touch
or send us a question?
CONTACT

Đừng Để Lịch Sử Git Biến Thành Ác Mộng – Học Ngay Cách Rebase Thần Sầu!

Khi làm việc trong team sử dụng Git, việc giữ lịch sử commit sạch sẽ không chỉ giúp dễ quản lý mà còn phản ánh rõ ràng quá trình phát triển của dự án. Một công cụ cực kỳ mạnh để đạt được điều này chính là git rebase. Bài viết này, mình sẽ hướng dẫn bạn cách dùng git rebase đúng cách, giúp giữ cho lịch sử commit gọn gàng, dễ đọc – nhất là trước khi merge vào main.Screenshot 2025-05-30 at 15.05.41.png

1. Vì sao cần git rebase?

Khi làm việc trên một branch feature (ví dụ feature/login), thường thì branch main sẽ tiếp tục thay đổi bởi các thành viên khác. Nếu chỉ merge thủ công, bạn dễ rơi vào tình trạng lịch sử commit bị phân mảnh, lặp đi lặp lại các commit như “merge main into feature…”.

Dùng rebase giúp bạn:

  • Luôn cập nhật branch của bạn trên nền mới nhất của main.
  • Gộp lại các commit lặt vặt (fix bug, sửa chính tả, v.v…) thành một commit ý nghĩa.
  • Lịch sử dễ đọc, dễ review hơn khi tạo pull request.

2. Hướng dẫn rebase đúng cách

Checkout sang branch bạn đang làm việc

git checkout feature/login

Cập nhật nhánh main mới nhất từ remote

git fetch origin

Rebase nhánh bạn đang làm trên nền của main

git rebase origin/main

Nếu trong quá trình rebase bị xung đột, Git sẽ dừng lại để bạn xử lý. Sau khi sửa xong:

git add .
git rebase --continue

Nếu muốn rebase lại lần nữa vì đã rebase trước đó hoặc muốn chỉnh commit cũ:

git rebase -i origin/main

Gộp commit bằng rebase -i

Dùng lệnh sau để mở danh sách các commit:

git rebase -i origin/main

Bạn sẽ thấy hiển thị như sau:

pick 123abc add login form
pick 456def fix typo in login
pick 789ghi add validation

# Rebase abc123..789ghi onto abc123 (3 commands)

Thay pick bằng squash hoặc s để gộp commit sau vào commit trước:

pick 123abc add login form
squash 456def fix typo in login
squash 789ghi add validation

Git sẽ yêu cầu bạn chỉnh lại nội dung commit, hãy viết lại sao cho rõ ràng:

Add login form with validation
- Fixed typo
- Added form validation

⚠️ Lưu ý: squash commit nào là quyết định của bạn – nhưng nên đảm bảo commit cuối cùng mô tả chính xác những gì bạn đã làm

Chỉnh sửa nội dung commit cuối cùng

Sau khi squash hoặc rebase xong, nếu muốn chỉnh lại nội dung commit:

git commit --amend

Sẽ mở ra trình soạn thảo để bạn sửa lại message.

Hoặc có thể dùng command line trực tiếp

git commit --amend -m "Nội dung cân commit"

3. Lưu ý “nghệ thuật” commit sạch

  • Mỗi commit nên là một đơn vị logic: “thêm tính năng A”, “sửa lỗi B”, không phải “lỡ tay quên dòng này”.
  • Tránh để quá nhiều commit nhỏ kiểu “fix typo”, “sửa bug”, “chỉnh lại tên biến”.
  • Dùng rebase -i để gom nhóm các commit có liên quan.
  • Trước khi tạo PR, luôn chạy:
git fetch origin
git rebase -i origin/main

4. Tổng kết

git rebase không khó, nhưng cần cẩn thận. Khi dùng đúng cách, nó giúp bạn:

  • Có lịch sử commit sạch sẽ, dễ đọc.
  • Dễ dàng làm việc nhóm, review code.
  • Giữ cho main branch ổn định và rõ ràng.