2012-04-03 32 views
15

Điều này có vẻ sai lầm rất ngu ngốc, tôi chỉ làm một git stash pop trên một cây làm việc bẩn. Tôi không biết cách giữ các thay đổi mong muốn và hoàn tác stash pop. Có tồn tại không? Hay sai lầm như vậy là không thể tha thứ?Hoàn tác git stash pop trên cây làm việc bẩn

Trả lời

8

Nếu bạn vẫn có SHA1 của stash đó, bạn có thể tạo bản vá từ nó (git format-patch SHA1) và áp dụng bản vá ngược lại (git apply -R filename.patch).

Nếu bạn làm mất SHA1, xem How to recover a dropped stash in Git?

+0

Làm thế nào để bạn tạo một bản vá ra khỏi lệnh định dạng vá? – meson10

+0

Lệnh đã cho tạo bản vá cho commit 'SHA1'. – adl

+1

Điều này dường như không hoạt động đối với việc hợp nhất; khi tôi làm 'git stash pop' trên thư mục làm việc bẩn thỉu của tôi, nó kết hợp các thay đổi bị vướng víu, do đó,' git format-patch SHA1' không làm gì cả. Bất kỳ ý tưởng cho một workaround? – Will

1

git stash pop làm 2 điều: git stash applygit stash drop. Nếu bạn có thể hoàn tác drop, sử dụng this question and answers, thì bạn chỉ cần hoàn tác apply. Tôi không chắc chắn cách thực hiện việc này, nhưng bạn có thể xem xét git rebase. nhưng adl thì có.

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