Làm cách nào để "rollback" cam kết cuối cùng trong git mà không xóa bất kỳ thay đổi nào?git tương đương với hg rollback
Đây là điều mà tôi đã thực hiện thường xuyên trong hg:
- Commit "Cố định 107."
- nhớ rằng tôi đã quên làm một cái gì đó
- hg rollback
- Do một cái gì đó
- Commit "Cố định 107."
'hoàn nguyên' là cách để đối phó với chỉ một trong các lý do khác. Nếu cam kết trong câu hỏi được xuất bản, thì thực sự, hãy sử dụng 'git revert'. Nếu nó chưa được đẩy và đó là cam kết mới nhất, hãy sử dụng 'git reset [--hard] HEAD ^'. Nếu nó chưa được đẩy, và nó không phải là cam kết mới nhất, sử dụng 'git rebase -i' để loại bỏ nó khỏi lịch sử, để phần còn lại nguyên vẹn. – Cascabel
Hãy coi chừng git noobs (như tôi).Tôi đã "git reset HEAD ^" và nó không chỉ loại bỏ cam kết của tôi khỏi lịch sử mà còn hoàn nguyên các tệp đã cam kết về trạng thái cam kết trước đó của chúng. –
@DaviLima 'git reset HEAD ^' không nên làm điều đó, nó chỉ nên sửa đổi các tệp trong thư mục làm việc của bạn nếu bạn cũng sử dụng cờ '--hard'. – dubiousjim