Menu
Giải Đáp Wiki Diễn Đàn
Trang chủ » Diễn đàn » Lập trình & Thiết kế Web » Cứu nguy code lỗi với Git reflog là gì thế nào.

Cứu nguy code lỗi với Git reflog là gì thế nào.

Mấy hôm nay hí hoáy fix bug cái giao diện web mà lỡ tay `reset` nhầm một phát bay toi sạch cả buổi chiều code, nghĩ lại mà ruột gan cứ lộn cả lên. Lên mạng tìm cách cứu vớt thì thấy tụi Tây đồn thổi cái lệnh `Git reflog` gì đó cứu được bàn thua trông thấy, nhưng ngặt nỗi đọc tài liệu tiếng Anh lú quá chẳng hiểu gì sất. Có bác nào ở đây rành cái này không, giải ngố giúp em phát xem nó hoạt động kiểu gì với. Nghe bảo là Git nó lưu lại hết mọi dấu vết mình từng đi qua, kể cả mấy cái commit bị xóa vĩnh viễn cơ mà thực tế dùng thế nào để bốc lại code cũ? Anh em nào từng cứu dữ liệu bằng cách này rồi thì chỉ cho em xin cái quy trình từng bước với, chứ gõ mò mẫm nữa khéo sập cả project thì ăn cám Tết này.

Thảo luận (10 bình luận chính)

Avatar
Vũ Hồng Nhung MEMBER Cấp 0 24/10/2026 09:08

Vụ này đợt trước mình cũng từng lỡ tay `reset --hard` bay sạch đống code thức đêm nên cực kỳ thấu cái cảm giác ruột gan lộn lên. Bình tĩnh nhé, chủ thớt không phải khóc thét nữa đâu vì `git reflog` chính là cái phao cứu sinh đích thực trong tình huống này đấy. Bản chất cái lệnh này nó giống như lịch sử truy vết mọi hành động bạn từng làm trên local repo, kể cả mấy cái commit bị bạn xóa oan. Giờ bạn chỉ cần gõ `git reflog` để tìm lại cái mã hash (mã định danh) trước lúc lỡ tay reset, rồi phang ngay lệnh `git reset --hard ` là code lại về nguyên trạng như chưa từng có cuộc chia ly.

Avatar
Vũ Quang Huy MEMBER Cấp 1 22/10/2026 17:53

Mở ngay terminal lên và gõ ngay lệnh `git reflog` để xem lại toàn bộ lịch sử thao tác gần nhất của Git, kể cả mấy cái commit bị "bay màu" do lỡ tay `git reset`. Sau khi hiện ra danh sách các mốc thời gian kèm mã hash (chuỗi ký tự dài ở cột ), bạn chỉ việc copy cái mã trước lúc gây án rồi gõ `git reset --hard ` là code lại nguyên vẹn về tay như chưa từng có cuộc chia ly. Lần sau rút kinh nghiệm tạo một nhánh (branch) tạm trước khi đụng đến mấy lệnh hủy diệt này nhé.

Avatar
Lâm Bảo Nam MEMBER Cấp 1 21/10/2026 09:15

Gõ ngay lệnh `git reflog` vào terminal để xem lại toàn bộ lịch sử các thao tác gần đây của ông, tìm cái mã commit ngay trước lúc lỡ tay `reset` rồi quăng lệnh `git reset --hard ` vào là lại hồi sinh sạch sẽ đống code vừa bay. Làm ăn kinh doanh hay code tay chân gì cũng vậy, chỗ này giống như lịch sử giao dịch hay tính năng "undo" thần thánh của dân MMO mình vậy, cứu mạng không biết bao nhiêu lần nên cứ bình tĩnh mà mần nhé chủ thớt.

Avatar
Đoàn Mai Anh MEMBER Cấp 4 12/10/2026 19:58

Gõ ngay lệnh `git reflog` vào terminal để xem lại toàn bộ lịch sử các thao tác gần nhất của Git, sau đó tìm đến mã hash (SHA-1) của cái commit trước lúc lỡ tay `reset` rồi quất câu lệnh `git reset --hard ` là lại hồi sinh nguyên xi đống code buổi chiều ngay. Hiểu đơn giản thì `reflog` giống như cái bộ nhớ "Ctrl + Z" vô hình của Git, nó ghi lại mọi bước đi của mình kể cả lúc bay màu nhánh nên cứ bình tĩnh mà cứu dữ liệu, không phải xoắn.

Avatar
Phan Tuấn Anh MEMBER Cấp 3 11/10/2026 16:48

Vụ này đợt trước mình cũng suýt khóc ròng vì lỡ tay `git reset --hard` bay toi cả ngày cày kéo, may mà có cú cứu cánh `git reflog`. Nói đơn giản thì reflog nó giống như cái "hộp đen" ghi lại mọi vết xe đổ, mọi cú nhảy commit của Git trên máy bạn, kể cả mấy cái bị tưởng xóa vĩnh viễn. Chủ thớt cứ gõ ngay `git reflog` để tìm lại cái mã hash (mấy chữ số lằng nhằng) ngay trước lúc lỡ tay nghịch dại, rồi phang lệnh `git reset --hard [mã_hash_đó]` là code lại hiện về nguyên trạng ngay lập tức nhé.

Avatar
Lý Thành Long MEMBER Cấp 4 10/10/2026 13:29

Chia buồn với chủ thớt, bay toi buổi chiều code đúng là cảm giác muốn đập máy. May là Git nó có tính năng "quay xe" cực khét, cứ mở terminal lên và gõ ngay `git reflog` để xem lại lịch sử mọi thao tác gần nhất của mấy cái commit. Tìm cái mốc thời gian trước lúc lỡ tay `reset` (nó sẽ hiện dạng `HEAD@{x}`), rồi phang lệnh `git reset --hard HEAD@{x}` hoặc tạo branch mới từ mốc đó là code lại hiện về nguyên trạng. Lần sau cẩn thận với mâý lệnh hủy diệt này nhé, nhớ đẩy code lên remote thường xuyên cho lành.

Avatar
Võ Quỳnh Nga MEMBER Cấp 4 10/10/2026 13:08

Chia buồn với chủ thớt, pha `git reset` nhầm này kinh điển lắm, ai code web cũng dính ít nhất một lần nhưng yên tâm là chưa mất gì đâu vì Git lưu vết lại hết rồi. Cứ mở terminal lên chạy ngay lệnh `git reflog` để xem lịch sử hoạt động, tìm cái mã hash (chuỗi ký tự dài) ngay trước đoạn lỡ tay `reset` ấy. chỉ cần gõ `git reset --hard ` là code bay về nguyên trạng cả buổi chiều ngay lập tức.

Avatar
Phạm Bích Ngọc MEMBER Cấp 4 08/10/2026 03:35

Gõ ngay lệnh `git reflog` rồi tìm đến cái mã hash commit ngay trước lúc lỡ tay `reset` nhầm, sau đó quất luôn lệnh `git reset --hard ` là lại thấy nguyên đống code buổi chiều hiện về ngay lập tức. Cái lệnh này nó như hộp đen lưu lại mọi dấu vết thao tác của Git trên máy bạn, nên dù có lỡ tay xóa hay trôi commit thì cứ bình tĩnh vì code chưa bao giờ mất thật đâu, kinh nghiệm xương máu của mình cứu cái này cả chục lần rồi đấy.

Avatar
Hoàng Bảo Nam MEMBER Cấp 4 07/10/2026 16:34

Vụ này đợt trước mình vừa nghịch dại xong, lúc bay sạch code mặt cắt không còn giọt máu y như chủ thớt luôn. Nói đơn giản thì `git reflog` nó giống như cái "văn bản ghi nhớ" mọi hành động của Git, kể cả lúc bạn lỡ tay `reset` hay `checkout` điên cuồng nó vẫn lưu vết hết. Cứ bình tĩnh mở terminal lên gõ `git reflog` là thấy ngay danh sách mấy cái mã hash (mấy dãy số chữ dài ngoằn ngoèo) trước lúc thảm họa xảy ra. Chỉ việc copy cái mã trước lúc gây lỗi rồi quăng vào lệnh `git reset --hard ` là lại thấy cả buổi chiều code về với vòng tay yêu thương ngay nhé.

Avatar
Hoàng Ngọc Ánh MEMBER Cấp 3 03/10/2026 15:56

Chia buồn với chủ thớt, bay toi buổi chiều code đúng là cảm giác muốn trầm cảm thật sự nhưng đừng hoảng, `git reflog` chính là chiếc phao cứu sinh chuẩn bài trong hoàn cảnh này đấy. Bạn chỉ cần mở terminal lên gõ `git reflog` để xem lại lịch sử các thao tác gần nhất, tìm cái mã hash (mấy chữ số lằng nhằng bên trái) ngay trước cái lần lỡ tay `reset` dại dột. Sau đó quất luôn lệnh `git reset --hard [mã-hash-đó]` là toàn bộ code buổi chiều lại hiện nguyên hình ngay lập tức, nhớ tranh thủ `commit` lại liền tay cho chắc cú nhé.

Vui lòng Đăng nhập hoặc Đăng ký để tham gia bình luận.