Tôi đã làm dự án của mình trong khi tại một thời điểm nào đó tôi phát hiện ra rằng một điều đã ngừng hoạt động. Tôi cần tìm kiếm trạng thái mã của mình khi nó hoạt động chính xác, vì vậy tôi đã quyết định sử dụng git checkout (vì tôi muốn kiểm tra một thứ gì đó). Và vì vậy tôi đã làmGit checkout - chuyển trở lại HEAD
git checkout SHA
vài lần trong khi đi trở lại điểm từ mà tôi không thể đi đến HEAD, đầu ra là như sau:
git checkout SHA-HEAD
error: Your local changes to the following files would be overwritten by checkout:
[list of files]
Please, commit your changes or stash them before you can switch branches.
Aborting
tôi khá nhiều, chắc chắn tôi CHƯA đã thay đổi bất cứ điều gì. Lệnh
git checkout master
cho cùng một đầu ra.
Có cách nào để quay lại HEAD không?
Cách an toàn để "nhảy qua" lịch sử cam kết là gì?
Nếu bạn không muốn giữ lại những thay đổi 'git -f' sạch sẽ làm sạch tất cả các file được theo dõi. Sau đó, thanh toán để làm chủ – gmuraleekrishna
Thông báo 'lỗi: ...' có nghĩa là bạn — hoặc một cái gì đó bạn đã làm, có lẽ gián tiếp— * đã * thay đổi các tệp. Bạn có thể yêu cầu Git loại bỏ hoặc ghi đè các thay đổi này hoặc sử dụng 'git status' và/hoặc' git diff' để xem chính xác, thay đổi. Nó có thể đơn giản như một số loại sửa đổi dòng kết thúc, hoặc một số lệnh chạy trong nền đã ghi vào một tệp. (Ngoài ra: "quay trở lại HEAD" không có ý nghĩa trong Git, như bạn * luôn luôn * trên HEAD: 'HEAD' nghĩa đen là" cam kết hiện tại ". Bạn có thể * thay đổi * HEAD, sau đó bạn vẫn còn trên HEAD , chỉ cần một HEAD khác. Đây là ... khó để cụm từ. :-)) – torek
Git được nạp với các cơ chế, do đó, đây là hai: 'git reset --hard HEAD' có nghĩa là" đặt lại chỉ mục và work-tree để khớp HEAD ", tức là, vứt bỏ những thay đổi. Hoặc: 'git checkout -f master' có nghĩa là" thay đổi HEAD thành 'master', ngay cả khi điều đó có nghĩa là vứt bỏ một số công việc": '-f' có nghĩa là" force ". – torek