Uh oh ... Tôi đã nhầm lẫn một thay đổi khá phức tạp (bao gồm cả thư mục con và các tập tin đổi tên) mà không biết tôi đang làm gì (hoặc Git sẽ làm gì) .Git: Làm thế nào để hoàn tác commit * và * trở về nhánh cuối
bây giờ tôi muốn phục hồi lại tất cả mọi thứ như vậy:
- cam kết là hoàn toàn đảo ngược (như thể nó chưa bao giờ được thực hiện, có lẽ loại bỏ nó từ lịch sử cũng)
- Khôi phục thư mục làm việc hiện tại (trong đó
.git
) đến một chi nhánh nhất định (người cuối cùng sẽ làm ngay bây giờ).
tôi tìm thấy tài liệu tham khảo để git reset --soft và git reset --hard nhưng tôi đã chứng minh bản thân mình rằng tôi có thể làm thiệt hại thực tế do sớm sử dụng một lệnh mà không hiểu đầy đủ về nó. :)
Tôi tìm thấy git reset man page nhưng tôi vẫn còn nhầm lẫn như:
HEAD
là gì?- Sự khác nhau giữa
HEAD
và* master
là gì? - Trong trường hợp của tôi (xem ở trên) làm tôi cần sử dụng
--soft
,--hard
hoặc khác (3 tùy chọn khác)? - Tôi có cần chạy lệnh khác (sau khi thực hiện
git reset
) để "hoàn tất" việc đảo ngược không?
UPDATE: Sau khi đọc câu trả lời dưới đây:
- Tôi hiểu một cách chính xác rằng tất cả những gì cần phải làm gì trong hoàn cảnh của tôi là vấn đề một lệnh đơn
git reset --hard HEAD^
? - Làm cách nào để xác minh rằng đảo ngược là được thực hiện chính xác?
Vì bạn đang học git, hãy để tôi giới thiệu hai cuốn sách cho bạn: [git community book] (http://book.git-scm.com/index .html) và [pro git] (http://progit.org/book/), cả hai đều hoàn toàn trực tuyến. – shelhamer
@Shelhamer Cảm ơn! – WinWin