Bài viết được sự cho phép của tác giả Lê Chí Dũng
Khi bạn vừa thêm một commit vào git tree, và chợt nhận ra commit vừa rồi bị sai, không hoàn chỉnh hoặc có vấn đề, bạn sẽ muốn “undo” commit hoặc loại bỏ nó. Ở đây mình sẽ giới thiệu 3 cách undo commit hoặc loại bỏ commit cơ bản.
Reset
Nhày HEAD về vị trí trước khi commit sai bằng git reset
như sau
HEAD^
có ý nghĩa giống vớiHEAD~
hay@^
, nghĩa là quay về trước 1 commit- Muốn quay về trước n commit, VD 5 commit thì có thể thay bằng
HEAD~5
. --hard
có nghĩa là bỏ commit đi và bỏ cả những thay đổi chưa được commit trong working space. Khi này môi trường sẽ hoàn toàn “sạch sẽ” như thời điểm trước khi commit.--soft
có nghĩa là bỏ commit đi nhưng giữ nguyên những thay đổi chưa được commit trong working space.--soft
hữu dụng khi bạn muốn giữ lại những thay đổi chưa commit cho lần commit tiếp theo
Revert
Git revert
có thể tạo một commmit với với nội dung đảo ngược lại một commit cũ. Giả sử commit cũ có hash là (commit_hash)
thì câu lệnh sẽ là:
–amend
Bạn có thể ghi đè lại commit mới nhất bằng option --amend
của git commit
Lúc này git sẽ cho phép bạn viết lại commit message. Cách này hay dùng khi muốn sửa commit message. Nếu bạn chỉ muốn add thêm file mà không muốn sửa commit message thi có thể dùng option --no-edit
Kết luận
3 cách bên trên đây có những trường hợp sử dụng cụ thể khác nhau
- Muốn bỏ hoàn toàn một commit sai, dùng
git reset
- Muốn “undo” một merge commit và để lại lịch sử, dùng
git revert
- Muốn thêm những thay đổi nhỏ không đáng kể và tránh bị lắt nhắt, dùng
git commit --amend
Bài viết gốc được đăng tải tại lcdung.top
Có thể bạn quan tâm:
- Những điều cần lưu ý khi dùng git để quản lý source code
- Tại sao junior dev nên review commits của các senior?
- Cài đặt MySQL Community Server trên macOS
Xem thêm Việc làm Developer hấp dẫn trên TopDev