Git: vũ khí cuối cùng để sửa chữa: reflog
Git
54
White

Le Lam viết ngày 31/07/2015

Git reflog có thể nhiều bạn đã biết rồi, mình viết lại ở đây để memo cho bản thân.

Lỡ tay reset --hard

Git reflog gần như là vũ khí cuối cùng để cứu cánh cho những cơn lầm lỗi :D Đơn giản là sau khi lỡ tay reset --hard

$ git reset --hard HEAD~

lúc này phương pháp giải quyết là

$ git reflog

bcb5518 HEAD@{0}: reset: moving to HEAD~
788674f HEAD@{1}: commit: test
...

Ở đây 788674f là commit đã bị lỡ làm mất, bằng hành động reset --hard HEAD~bcb5518. Vì vậy bây giờ mình sẽ khôi phục lại nguyên trạng của 788674f.

$ git reset --hard 788674f
HEAD is now at 788674f test

Bạn thấy đấy, git reflog như là "máy thời gian" vậy. Chúng ta có thể xem lại lịch sử của bất cứ hành động nào và nhảy về vị trí đó bằng commit hash.

Lỡ tay branch -D

Một trường hợp gần giống là khi lỡ tay xóa branch và muốn quay lại

$ git br -D develop
Deleted branch develop (was 788674f).

Vấn đề sẽ được giải quyết tương tự bằng "máy thời gian".

$ git reflog

9b48127 HEAD@{0}: checkout: moving from develop to master
788674f HEAD@{1}: reset: moving to 788674f

Trạng thái muốn quay lại là 788674f, vì thế

$ git branch develop 788674f
$ git checkout develop

Và chúng ta sẽ quay lại branch vừa bị xóa lúc nãy.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Le Lam

3 bài viết.
8 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
49 8
Khi mới học Git mình hay mắc khá nhiều lỗi, và thời gian đi tìm hiểu khắc phục những lỗi tạo ra nhiều khi quá cả thời gian quay lại commit trước và...
Le Lam viết 3 năm trước
49 8
White
15 2
Tôi lỡ push một vài commit xấu và tôi muốn xóa đi mà không ai biết :v Giả sử bạn đã "lỡ" push 1 vài commit không hay lên master $ git log oneline...
Le Lam viết gần 3 năm trước
15 2
Bài viết liên quan
White
49 8
Tôi xin tổng hợp các cách dùng git stash tôi hay sử dụng Lưu lại thay đổi Git stash được sử dụng khi muốn lưu lại các thay đổi chưa commit, thườ...
BB viết 3 năm trước
49 8
White
13 2
Xin chào các bạn. Chắc hẳn mỗi chúng ta đều đã từng phát triển app sử dụng API của bên thứ 3, và chắc mọi người đều biết là hầu hết các API service...
Hải Nguyễn viết hơn 1 năm trước
13 2
White
5 7
Thông thường một feature mới thường được làm trên một nhánh (branch) riêng và thường xuyên pull các cập nhật từ nhánh master trong quá trình đấy. S...
Lơi Rệ viết gần 3 năm trước
5 7
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
3 bài viết.
8 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!