Bạn có thể muốn thay đổi commit message vì nhiều lý do khác nhau - có thể để sửa lỗi chính tả, hoặc đơn giản là viết lại cho rõ. Để thay đổi commit message của commit gần nhất, bạn có thể sử dụng amend, nhưng đối với các commit xa hơn trong lịch sử, bạn sẽ cần sử dụng interactive rebase.
Reword không phải là một lệnh Git độc lập, mà là một trong những lệnh có sẵn trong mode interactive rebase khi chạy lệnh git rebase -i. Hãy đảm bảo bạn đã hiểu về interactive rebase trước khi học bài này.
Bắt đầu bằng việc nói với Git bạn muốn thao tác trên những commit nào bằng cách chỉ định một chuỗi các commit bắt đầu từ con trỏ HEAD trở về trước:
git rebase -i HEAD~2
Lệnh này sẽ cho phép bạn thao tác trên 2 commit gần nhất.
Sau khi thực thi lệnh rebase, Git sẽ mở trình soạn thảo văn bản mặc định trong terminal của bạn (thường là Vim) và hiển thị một bộ hướng dẫn mặc định. Các commit từ chuỗi đã chọn được liệt kê ở đầu file này:
pick 7f9d4bf Frontpag bug fiz
pick 3f8e810 Refactored navbar
# Rebase 4095f73..ec48d74 onto 4095f73 (3 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
...
Để thay đổi commit message, hãy đổi tiền tố của commit bạn muốn reword từ pick thành reword (nếu bạn đang sử dụng Vim, nhấn i để vào chế độ insert và thực hiện thay đổi).
Ví dụ, để sửa commit message của commit đầu tiên:
reword 7f9d4bf Frontpag bug fiz
pick 3f8e810 Refactored navbar
Sau khi chỉnh sửa xong file hướng dẫn (đã đổi pick thành reword ở những commit muốn thay đổi message), bạn cần lưu và đóng file soạn thảo (với Vim: nhấn ESC, sau đó gõ :wq rồi Enter).
Lúc này, Git sẽ lần lượt thực thi các hướng dẫn. Khi đến một commit có lệnh reword, Git sẽ tạm dừng và tự động mở tiếp một file soạn thảo mới, chứa nội dung commit message cũ của commit đó.
Bạn hãy sửa nội dung commit message theo ý muốn (ví dụ, sửa lỗi chính tả hoặc bổ sung thông tin mô tả), sau đó lưu và đóng file này (vẫn trong Vim: ESC, rồi :wq + Enter). Với mỗi commit bạn chọn reword, bước này sẽ lặp lại cho từng commit.
Ví dụ, sửa lỗi chính tả trong commit message:
Frontpage bug fix
Sau khi bạn hoàn tất việc thay đổi commit message, lưu và đóng file để hoàn tất các cập nhật. Lặp lại quy trình này cho mỗi commit bạn muốn cập nhật.
Nếu bạn chỉ muốn thay đổi commit message của commit gần nhất, hãy sử dụng git commit --amend thay vì interactive rebase.
Khi sử dụng Vim, nhớ rằng bạn cần vào chế độ insert (i) để chỉnh sửa, và thoát chế độ insert (ESC) trước khi lưu (:wq).
Bạn có thể reword nhiều commit trong cùng một lần interactive rebase bằng cách đổi pick thành reword cho tất cả các commit bạn muốn sửa.
Reword cho phép bạn sửa đổi commit message của các commit trong lịch sử mà không thay đổi nội dung code. Quy trình bao gồm ba bước: chọn các commit cần thao tác, tạo bộ hướng dẫn bằng cách đổi pick thành reword, và thực thi bộ hướng dẫn để chỉnh sửa commit message.
Hãy nhớ rằng reword chỉ nên được sử dụng trên các commit local chưa được chia sẻ để tránh gây xung đột cho các thành viên khác trong team.
Tiếp theo: Xóa commit