Là người dùng Git, tôi thường xuyên gặp phải tình huống rằng tôi cần phải làm lại một hoặc nhiều cam kết theo cách không phù hợp với --amend
hoặc rebase -i
với các cam kết sửa chữa. Thông thường tôi sẽ làm một cái gì đó như
git reset HEAD~1
# hack, fix, hack
git commit -a
# argh .. do I need to retype my message?
Tôi coi các thông điệp cam kết hợp lý khá nghiêm túc. Chúng thường chứa văn bản lớn hơn với các tham chiếu và lý do cho sự thay đổi. Cho đến bây giờ, tôi khá bực mình về quá trình dài để phục hồi cũ của tôi cam kết thông báo thông qua một không được phân loại git reflog
, git log
và sao chép và dán quá trình.
Có cách nào tốt hơn để giải quyết vấn đề này không? Và nó sẽ như thế nào, nếu của tôi bao gồm nhiều hơn một cam kết?
Chỉnh sửa: Sau khi suy nghĩ một chút về điều này, tôi nghĩ những gì tôi đang tìm kiếm là một số chức năng giống git stash cho các thông báo cam kết trong đó các cam kết sửa chữa / sửa đổi không phù hợp.
gitk
mở. Bằng cách đó, bạn thậm chí sẽ không phải sử dụng reflog. Ngoài ra, sử dụng rev-parse <branch>
để lấy mã băm của bạn trước khi đặt lại và sử dụng câu trả lời của ibizaman.
git reset head~1
, không phải thông báo cam kết cũ của bạn chỉ là mục nhập thứ hai trongreflog
?