Có cách nào để hoàn nguyên hoặc hoàn tác git pull để nguồn / repos của tôi sẽ trở về trạng thái cũ trước khi thực hiện git pull không? Tôi muốn làm điều này bởi vì nó hợp nhất một số tệp mà tôi không muốn làm như vậy, nhưng chỉ hợp nhất các tệp còn lại. Vì vậy, tôi muốn lấy lại những tập tin đó, điều đó có thể không?
EDIT: Tôi muốn hoàn tác hợp nhất git để làm rõ. Sau khi thấy một số câu trả lời, tôi đã làm điều này
git reflog
bb3139b... HEAD@{0}: pull : Fast forward
01b34fa... HEAD@{1}: clone: from ...name...
Bây giờ, tôi nên làm gì? Làm git reset --hard
được không? Tôi không muốn vặn nó một lần nữa, vì vậy yêu cầu các bước chi tiết?
git reflog
sẽ hiển thị mọi thứ đã được thực hiện với git. Có một mối quan tâm git reset --hard [sha1 of something from reflog]
sẽ hoàn nguyên mọi thứ được hiển thị reflog
, đôi khi không phải là mục tiêu, ví dụ. bạn muốn hoàn nguyên hợp nhất trên nhánh chính được lấy từ gốc với dữ liệu xấu (xảy ra) và sau khi hợp nhất đó, bạn đã làm việc trên các nhánh khác. reflog
sẽ hiển thị mọi chage trên các nhánh khác. Nhưng git checkout master
và git reset --hard [SH1 of commit on master branch just before merge]
sẽ chỉ thiết lập lại nhánh chính hiện tại loại bỏ hợp nhất kéo từ gốc.
git reset --hard 01b34fa
, trong trường hợp này, bạn có thể thực hiệngit reset --hard HEAD^
việc đặt lại thành một cam kết trước TRƯỚC.