2016-05-24 17 views
145

Do nhầm lẫn, tôi đã làm git add .git commit trong chi nhánh develop. Nhưng may thay, tôi không làm git push.Cách hoàn tác cam kết cuối cùng trong git

Vì vậy, tôi muốn hoàn nguyên về trạng thái ban đầu.

Tôi đã thử git reset --softgit reset HEAD --hard nhưng có vẻ như tôi đã làm hỏng nó.

Làm cách nào để khắc phục sự cố này? Tôi muốn quay trở lại trạng thái ban đầu và có thể giữ mã thay đổi.

Trả lời

374

Tôi nghĩ rằng bạn đã không sai lầm được nêu ra. Hãy thử:

git reset HEAD^ 

này sẽ mang lại dir nêu trước khi bạn đã thực hiện các cam kết, HEAD^ có nghĩa là cha mẹ của các hiện cam kết (một trong những bạn không muốn dùng nữa), trong khi vẫn giữ những thay đổi từ nó (unstaged).

+45

cộng một cho ** ** ** –

+5

Đây có thể là một bản sao, nhưng điều này là câu trả lời đơn giản hơn tôi muốn 90% thời gian. Cảm ơn bạn – geneorama

+0

Bạn, thưa bạn, thưa bà, là một vị cứu tinh! – Amal

72

Hãy thử đơn giản để thiết lập lại cam kết cuối cùng

git reset --soft HEAD~1 
+1

'gây tử vong: đối số mơ hồ 'HEAD ~ 1': bản sửa đổi không rõ hoặc đường dẫn không nằm trong cây đang hoạt động. Sử dụng '-' để tách các đường dẫn khỏi các bản sửa đổi. – Green

+0

Thử sử dụng git bash. Nếu bạn đang sử dụng Windows, bàn điều khiển sẽ không hoạt động vì một số lý do, không chắc chắn lý do. Git bash hiện tho. – Fred

+0

@Green Windows không thích 'HEAD ~ 1', bọc nó trong dấu ngoặc kép như' git reset --soft "HEAD ~ 1" ' – user568458

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