2011-01-22 39 views
7

Hãy nói rằng, git log hiện tại của tôi làxem tất cả lịch sử của git

commit3

commit2

commit1

tôi reset đầu đến commit2.

Bây giờ tôi muốn quay lại commit3, nhưng tôi quên sha-1 của commit3, vì vậy tôi muốn xem nhật ký, nhưng "git log" sẽ chỉ hiển thị commit2, commit1, câu hỏi của tôi là cách để đặt lại thành commit3 hoặc để hiển thị log cũng cam kết bây giờ?

Cảm ơn

Trả lời

10

Sử dụng git reflog để tìm tham chiếu cũ và chuyển trực tiếp đến số git log. Lưu ý rằng reflog bị xóa theo định kỳ và các commit cũ sẽ bị xóa trừ khi chúng là một phần của nhánh - nếu bạn muốn hoàn tác một commit nhưng để nó trong history, hãy sử dụng git revert để hoàn tác chúng mà không xóa chúng khỏi history.

+0

Hoặc, nếu nó chưa được công bố, chỉ cần tạo một khác nhau chi nhánh tại cam kết giữ. – Cascabel

4

Lệnh

git reflog 

sẽ cho bạn thấy một danh sách các Shas đã được các HEAD. Nói cách khác, nó cho thấy một danh sách các cam kết theo thứ tự mà chúng đã được kiểm tra. Trong danh sách đó, bạn cũng sẽ thấy cú pháp [email protected]{1}, [email protected]{2} vv Đó là cách để xử lý các HEAD trước đó.

Tôi trường hợp của bạn git checkout [email protected]{1} nên kiểm tra commit3, vì đó là HEAD trước HEAD hiện tại.

0

Có hai cách: -

Classic: git reflog

Big Picture :) git log --graph --decorate --oneline

Các vấn đề liên quan