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 » Xóa Commit Trong Github
-
Hủy Bỏ Commit Trước đó [Thay đổi Commit] | Hướng Dẫn Về Git Cho ...
-
[Git] Xóa Một Commit Từ Một Branch - Kipalog
-
Hướng Dẫn Cách Xóa Thay đổi Commit Trên Remote Github - Jundat95
-
Git 03: Lệnh Git Reset, Hủy (undo) Commit, Xóa Commit - YouTube
-
Dùng Lệnh Git Reset Hủy Commit Cuối Hoặc Staging
-
Undo Commit / Hủy Bỏ Commit Mới Nhất Trong GIT - VinaSupport
-
Một Số Trường Hợp Khi Sử Dụng Git - Viblo
-
Giới Thiệu 3 Cách Undo Commit Hoặc Loại Bỏ Commit Cơ Bản | TopDev
-
Remove Những File đã được Commit Vào Git Repository - The Little Coder
-
Tôi Vừa Lỡ Commit Sai, Làm Sao để Sửa Lại Ngay Lập Tức? - v
-
[Git] Xoá Tận Gốc Rễ Một File đã Từng Push Lên Github
-
Undo Committed Change In Git - Techmaster
-
Xóa Tất Cả Lịch Sử Commit Trên Git Giữ Lại Commit Hiện Tại
-
Cách Xóa Một Nhánh Trong Git Cục Bộ Và Từ Xa - THPT Sóc Trăng