Tôi thường xuyên sử dụng git stash
và git stash pop
để lưu và khôi phục các thay đổi trong cây làm việc của tôi. Hôm qua tôi đã có một số thay đổi trong cây làm việc của mình mà tôi đã cất và bật lên, và sau đó tôi đã thực hiện nhiều thay đổi hơn cho cây làm việc của mình. Tôi muốn quay lại và xem xét các thay đổi được lưu trữ của ngày hôm qua, nhưng git stash pop
dường như xóa tất cả các tham chiếu đến cam kết liên quan.
Tôi biết rằng nếu tôi sử dụng git stash
thì .git / refs / stash chứa tham chiếu của cam kết được sử dụng để tạo stash. Và .git / log / refs / stash chứa toàn bộ stash. Nhưng những tài liệu tham khảo đã biến mất sau đó git stash pop
. Tôi biết rằng cam kết vẫn còn trong kho lưu trữ của tôi ở đâu đó, nhưng tôi không biết nó là gì.
Có cách nào dễ dàng để khôi phục tham chiếu cam kết của ngày hôm qua không?
Lưu ý rằng điều này không quan trọng đối với tôi hôm nay vì tôi có bản sao lưu hàng ngày và có thể quay lại cây làm việc của ngày hôm qua để nhận các thay đổi của mình. Tôi đang hỏi bởi vì phải có một cách dễ dàng hơn!
git stash
, git pull -r upstream
, git push -f origin
, git stash pop
, và pop nói "chết người: log cho refs / stash là trống rỗng". Tôi đã thử một loạt các câu trả lời này, không có gì hiệu quả. Khi tôi nhìn vào .git / refs / stash , SHA đã ở đó. Có lẽ vấn đề với việc đánh dấu ổ đĩa mạng Windows để đồng bộ hóa ngoại tuyến? 🤷♂️
git stash pop
, bạn có thể làmgit stash apply
thay thế. Nó cũng làm điều tương tự, ngoại trừ việc nó không xóa tham chiếu đến stash được áp dụng.