OK, tôi nghĩ rằng tôi đã tìm được một luồng công việc sẽ đưa bạn trở lại nơi bạn cần (như thể bạn chưa thực hiện pop).
HÃY BACKUP TRƯỚC KHI !! Tôi không biết liệu điều này có hiệu quả với bạn hay không, vì vậy hãy sao chép toàn bộ repo của bạn chỉ trong trường hợp nó không hoạt động.
1) Khắc phục các sự cố hợp nhất và khắc phục tất cả các xung đột bằng cách chọn tất cả các thay đổi xuất phát từ bản vá (trong hình con rùa, điều này hiển thị dưới dạng một.REMOETE (của chúng)).
git mergetool
2) Cam kết những thay đổi này (chúng sẽ được thêm thông qua lệnh mergetool). Cung cấp cho nó một thông điệp cam kết "hợp nhất" hoặc một cái gì đó bạn nhớ.
git commit -m "merge"
3) Bây giờ bạn vẫn sẽ có các thay đổi chưa được xử lý cục bộ mà bạn đã bắt đầu ban đầu, với một cam kết mới từ bản vá (chúng ta có thể thoát khỏi điều này sau). Bây giờ cam kết thay đổi chưa được phân loại của bạn
git add .
git add -u .
git commit -m "local changes"
4) Đảo ngược các bản vá. Điều này có thể được thực hiện với lệnh sau:
git stash show -p | git apply -R
5) Cam kết những thay đổi này:
git commit -a -m "reversed patch"
6) Loại bỏ các cam kết vá / unpatch
git rebase -i HEAD^^^
từ đây, xóa hai dòng có 'hợp nhất' và 'bản vá đảo ngược' trong đó.
7) Nhận lại các thay đổi chưa được chỉnh sửa của bạn và hoàn tác cam kết 'thay đổi cục bộ'
git reset HEAD^
Tôi đã chạy qua nó với một ví dụ đơn giản và nó đưa bạn trở lại nơi bạn muốn - trực tiếp trước khi stash được bật lên, với những thay đổi cục bộ của bạn và với stash vẫn có sẵn để bật.