Git Rebase
Cập nhật lần cuối
git rebase di chuyển các commit trên nhánh của bạn để phát lại chúng lên trên một nhánh khác, cho ra lịch sử thẳng hàng thay vì một merge commit. Rebase tương tác (-i) còn đi xa hơn, cho phép bạn squash, sắp xếp lại, sửa hoặc bỏ commit. Vì rebase viết lại commit, chỉ dùng nó với phần việc bạn chưa chia sẻ.
Bạn có thể thử các lệnh này trong terminal playground: một shell thật ngay trên trình duyệt, không cần cài đặt gì.
Cú pháp
| Lệnh | Tác dụng |
|---|---|
git rebase main | Phát lại các commit của bạn lên trên main |
git rebase -i HEAD~3 | Chỉnh sửa tương tác 3 commit gần nhất |
git rebase --onto main old new | Chuyển một dải commit lên main |
git rebase --continue | Tiếp tục sau khi giải quyết xung đột |
git rebase --abort | Hủy rebase, khôi phục nhánh như cũ |
git pull --rebase | Pull rồi rebase thay vì merge |
Từ khóa trong rebase tương tác
Trong trình soạn thảo mà -i mở ra, đổi pick thành một trong các từ khóa sau.
| Từ khóa | Tác dụng |
|---|---|
pick | Giữ commit |
reword | Giữ commit, sửa thông điệp |
squash | Gộp vào commit trước đó, nối các thông điệp |
fixup | Gộp vào, bỏ thông điệp của commit này |
drop | Xóa hẳn commit |
Câu hỏi thường gặp về git rebase
git rebase làm gì?
Lệnh này lấy các commit trên nhánh hiện tại và phát lại lần lượt từng commit lên trên một nhánh khác, như thể bạn bắt đầu làm việc từ commit mới nhất của nhánh đó. Kết quả là một lịch sử thẳng hàng, không có merge commit. Trong quá trình này, các commit được viết lại (chúng nhận hash mới).
Rebase tương tác là gì?
git rebase -i <base> mở một trình soạn thảo liệt kê các commit kể từ <base>, nơi bạn có thể sắp xếp lại, squash nhiều commit thành một, reword thông điệp, edit một commit hoặc drop nó. Đây là công cụ chính để dọn dẹp một chuỗi commit lộn xộn trước khi chia sẻ.Quy tắc vàng của rebase là gì?
Làm sao xử lý hoặc hủy một lần rebase bị xung đột?
git add chúng, rồi chạy git rebase --continue. Dùng git rebase --skip để bỏ commit hiện tại, hoặc git rebase --abort để hủy hẳn và đưa nhánh về đúng trạng thái trước khi bắt đầu rebase.Có thể luyện tập lệnh này online không?
git rebase trong một shell thật ngay trên trình duyệt, không cần cài đặt gì. Khóa học Git tương tác miễn phí của Coddy cũng hướng dẫn từng bước cách rebase.