Git Reset "undo Commit"
Có thể bạn quan tâm
- 1 “Git reset” được sử dụng khi nào?
- 2 Cấu trúc câu lệnh git reset
- 3 HEAD, Working tree, Index trong git là gì?
- 4 Ví dụ tình huống sử dụng “git reset”
- 4.1 git reset –soft B
- 4.2 git reset B
- 4.3 git reset –hard B
- 4.4 git reset HEAD~1
- 5 Cập nhật thay đổi lên remote repository
“Git reset” được sử dụng khi nào?
Git reset được dùng đến khi muốn quay về một điểm commit nào đó, đồng thời cũng xóa lịch sử của các commit trước nó. Thường do chúng ta commit nhầm hoặc muốn xóa commit đó vì một lý do đặc biệt nào đó.
Git tuyệt vời, git mềm dẻo, nhưng hãy cẩn thận khi sử dụng “git reset” kẻo cả ngày code đi tong.

Cấu trúc câu lệnh git reset
git reset [--soft | --mixed | --hard | --merge | --keep] <commit>Về cơ bản ta hay sử dụng 3 lệnh sau là chủ yếu:
git reset <commit> git reset --soft <commit> git reset --hard <commit>trong đó git reset <commit> thực chất chính là sử dụng tham số mặc định –mixed
Liên quan đến “git reset” chúng ta cần phải tìm hiểu lý thuyết về “HEAD, Working tree, Index trong git là gì?“
HEAD, Working tree, Index trong git là gì?
- Git giữ một con trỏ đặc biệt có tên HEAD. Trong Git, đây là một con trỏ tới nhánh nội bộ mà bạn đang làm việc
- Trên Git, những thư mục được đặt trong sự quản lý của Git mà mọi người đang thực hiện công việc trong thực tế được gọi là Working tree.
- Giữa repository và working tree tồn tại một nơi gọi là index. Index là nơi để chuẩn bị cho việc commit lên repository
Để hiểu chi tiết hơn về working tree và index, xem tại Git quản lý các file như thế nào?
Ví dụ tình huống sử dụng “git reset”
Giả sử repository của chúng ta có các commit như sau:
A - B - C (HEAD -> master)git reset –soft B
git reset --soft B Sẽ đưa HEAD về vị trí commit B, giữ nguyên các thay đổi đã được git add tại B trong Staging Area. Tương ứng với tại B ta vừa git add xong, khi này chỉ việc git commit là ta lại có commit như C bên trên.
git reset B
git reset B Sẽ đưa HEAD về vị trí commit B, đồng thời đưa các thay đổi về Working directory. Tương ứng với tại B ta vừa code xong, chưa git add.
git reset –hard B
git reset --hard B Sẽ đưa HEAD về vị trí commit B, đồng thời loại bỏ tất cả các thay đổi tại B. Tương ứng với tại B ta chưa code gì cả.
git reset HEAD~1
Đôi khi bạn thấy lệnh git reset HEAD~1 thì nó cũng tương đương với lệnh git reset B như trên, vì HEAD~1 chính là lùi HEAD lại 1 commit.
- HEAD chính là commit hiện tại ta đang đứng.
- HEAD~1 là commit ngay trước HEAD trên cùng nhánh
- HEAD~n là commit trước HEAD n commit trên cùng nhánh
- Có thể dùng @ thay cho HEAD: git log @
Cập nhật thay đổi lên remote repository
Tuy nhiên, các thay đổi này mới chỉ diễn ra trên local repository, để cập nhật thay đổi này lên remote repository bạn cần phải thực hiện lệnh git push -f
Bài viết tượng tự
- Git rebase “gộp commit từ nhánh này vào nhánh khác”
- Git revert “undo commit, không làm mất commit hiện tại”
- Git branch “không gian làm việc”
- Git & GitHub Video hướng dẫn dành cho người mới [Mr Brad]
- Git stash “lưu lại thay đổi chưa commit”
Từ khóa » Bỏ Add Trong Git
-
Làm Cách Nào để Hoàn Tác 'git Add' Trước Khi Xác Nhận? - HelpEx
-
Thao Tác Cơ Bản | Hướng Dẫn Về Git Cho Người Mới Bắt đầu - Backlog
-
Dùng Lệnh Git Reset Hủy Commit Cuối Hoặc Staging
-
Một Số Trường Hợp Khi Sử Dụng Git - Viblo
-
Undoing In Git - Viblo
-
Tự Học Git | Lệnh Git Add
-
Remove Những File đã được Commit Vào Git Repository - The Little Coder
-
Ghi Lại Thay Đổi Vào Kho Chứa · Git
-
Giới Thiệu 3 Cách Undo Commit Hoặc Loại Bỏ Commit Cơ Bản - TopDev
-
Https:///posts/Biet-cach--undo--trong-g...
-
Hướng Dẫn Git - Amazon AWS
-
Cách Xử Lý Các Lỗi Thường Gặp Trong Git - TMA Solutions
-
Tham Chiếu Git Bằng Hình ảnh
-
Các Lỗi Phổ Biến Thường Gặp Khi Sử Dụng Git Và Cách Khắc Phục
-
Những Gì Cần Biết Khi Làm Việc Với Git Trong Dự án - TEDU
-
Xoá File Hoặc Thư Mục đã được Commit Lên Remote Repository Sau Khi ...
-
Git-add Documentation - Git