HocTotGit.io

Git nâng cao (Advanced)
  • Lý thuyết về rebase
  • Thực hiện Rebase
  • Giải quyết conflict khi rebase
  • Rebase vs Merge
  • Quiz
  • Rebase interactive
  • Thay đổi commit message
  • Xóa commit
  • Sắp xếp lại commit
  • Squash commit
  • Chia nhỏ commit
  • Quiz
Liên kết
Blog
Hỗ trợ

Email: work.lamsun@gmail.com

Yêu thích nền tảng

Hãy chia sẻ ý kiến của bạn

HocTotGit.io

© 2026 HocTotGit.

Thực hiện Rebase

1. Cách sử dụng

1.1. Lệnh Rebase

git rebase <source-branch> <topic-branch>

Tham số <topic-branch> đại diện cho branch sẽ bị "dịch chuyển" bởi lệnh rebase. Ví dụ, lệnh git rebase main <topic-branch> sẽ lấy các commit từ branch <topic-branch> và "dịch chuyển" chúng lên trên đầu của branch main.

Mặc định (Defaults): Nếu bạn không chỉ định tên branch muốn rebase (tham số thứ 2), Git sẽ mặc định chọn branch hiện tại bạn đang đứng làm topic-branch. Ví dụ:


2. Xung đột khi Rebase (Rebase Conflicts)

Xung đột có thể xảy ra khi Git cố gắng viết lại lịch sử các commit. Nếu phát hiện xung đột, quá trình rebase sẽ tạm dừng và bạn sẽ thấy thông báo lỗi trên màn hình:

CONFLICT (content): Merge conflict: ...
CONFLICT (modify/delete): Merge conflict: ...
error: could not apply

Bài học tiếp theo sẽ hướng dẫn bạn cách giải quyết xung đột khi rebase.


3. Force Push

Việc push một branch vừa mới được rebase lên server thường sẽ thất bại:

! [rejected]
error: failed to push some refs

Lỗi này xuất hiện vì việc push các thay đổi đã rebase sẽ ghi đè lên lịch sử (refs) đang tồn tại trên remote repository. Để báo cho Git biết đây là điều bạn chủ ý muốn làm, hãy truyền thêm cờ --force.

git push --force
Cảnh báo:

Hãy cực kỳ cẩn thận với --force, đặc biệt là khi bạn dùng rebase trên một branch dùng chung. Việc Force push có khả năng ghi đè và làm mất sạch các thay đổi của thành viên khác.


Tổng kết

Trong bài học này, chúng ta đã tìm hiểu cách sử dụng lệnh rebase để "dịch chuyển" các commit từ một branch sang một branch khác. Chúng ta sẽ tìm hiểu cách giải quyết xung đột khi rebase ở bài học tiếp theo.

Tiếp theo: Giải quyết conflict khi Rebase