Як згадував @bentolo, ви можете вручну видалити файли, на які він скаржиться, змінити гілки, а потім вручну додати їх назад. Але я особисто вважаю за краще залишатися "в межах git".
Найкращий спосіб зробити це - перетворити схованку на гілку. Коли це гілка, ви можете нормально працювати в git, використовуючи звичайні техніки / інструменти, пов'язані з гілками, які ви знаєте і любите. Це насправді корисна загальна техніка роботи зі схованками, навіть коли у вас немає переліченої помилки. Це добре працює, тому що схованка справді є комітом під ковдрами (див. PS).
Перетворення схованки на гілку
Далі створюється гілка на основі HEAD, коли було створено схованку, а потім застосовується схована (вона не фіксується).
git stash branch STASHBRANCH
Робота з "схованкою"
Що робити далі, залежить від взаємозв'язку між схованкою та місцем знаходження вашої цільової гілки (яку я буду називати ORIGINALBRANCH).
Варіант 1 - Знову перебазувати гілку схованки (багато змін після схованки)
Якщо ви зробили багато змін у своєму ОРИГІНАЛЬНОМУ ФІЛІЇ, то вам, мабуть, найкраще ставитися до STASHBRANCH, як до будь-якого місцевого відділення. Зафіксуйте свої зміни в STASHBRANCH, перебазуйте їх на ORIGINALBRANCH, а потім перейдіть на ORIGINALBRANCH і перебазуйте / об'єднайте зміни STASHBRANCH над ним. Якщо є конфлікти, тоді обробляйте їх нормально (одна з переваг цього підходу полягає в тому, що ви можете бачити та вирішувати конфлікти).
Варіант 2 - Скинути оригінальну гілку, щоб вона відповідала схованці (обмежені зміни після схованки)
Якщо ви просто сховали, зберігаючи деякі поетапні зміни, а потім здійснили, і все, що ви хочете зробити, - це отримати додаткові зміни, які, якщо вони не були виконані під час сховання, ви можете зробити наступне. Він повернеться до початкової гілки та індексу без зміни робочої копії. Кінцевим результатом будуть ваші додаткові схованки у вашій робочій копії.
git symbolic-ref HEAD refs/heads/ORIGINALBRANCH
git reset
Фон
Зберігання - це коміти, як гілки / теги (не патчі)
PS, спокусливо думати про схованку як про патч (так само, як спокусливо думати про коміт як про патч), але схованка насправді є комітом проти HEAD, коли вона була створена. Коли ви подаєте заявку / поп, ви робите щось подібне до збору вишні у вашій поточній гілці. Майте на увазі, що гілки та теги насправді є лише посиланнями на коміти, тому багато в чому схованки, гілки та теги - це просто різні способи вказівки на коміт (та його історію).
Іноді це потрібно навіть тоді, коли ви не вносили змін до робочого каталогу
PPS, Вам може знадобитися цей прийом після простого використання схованки з --patch та / або --include-untracked. Навіть без зміни робочих каталогів ці параметри іноді можуть створити схованку, яку ви не можете просто застосувати назад. Треба визнати, я не до кінця розумію, чому. Див. Http://git.661346.n2.nabble.com/stash-refuses-to-pop-td7453780.html для деяких обговорень.