2015-02-17 2 views
1

Я использую SmartGit в Windows. Сегодня мне нужно было сделать жесткий сброс назад, чтобы совершить пару. SmartGit автоматически сделал для меня мои измененные файлы.Git Stash Failed

После сброса, он пытался применить тайник:

$ git.exe stash apply --index [email protected]{0}

Но он дал мне:

Apply Stash: stash failed (return code 1).

Я могу просмотреть содержимое кошелька и посмотреть все мои коды, но я не могу применить кошелек. Как это исправить?

ответ

3

Просто сделайте git stash pop. Это даст вам ваши спрятанные изменения в рабочем дереве. (pop считая желающий [email protected]{0}.

Надеюсь, это поможет!

+0

Очень полезно. Спасибо Мудассиру! –

1

Можете ли вы экспортировать его в патч, а затем попытаться применить вручную?

git stash show -p > my_stash.patch 
+0

Я попробую это. Является ли тач в том же формате, что и патч? –

+0

Нет, но -p выведет патч как формат. Обратите внимание, что этот патч не будет включать изменения, которые у вас уже есть в вашем рабочем каталоге. – acanby

2

Есть несколько вещей, которые вы можете сделать:

  1. git apply --index пытается сохранить стадийность против unstaged настройки притона вы претендуете. Часто это «слишком сложно», но применение без--index, позволяющее без изменений изменять все изменения. Если вам не нужно поддерживать разделение, это может «просто работать».

  2. Как acanby suggested, вы можете превратить тайник в патч. Обратите внимание, что git stash show показывает только неустановленную часть кошелька, так что это как-то не используется --index.

  3. Если все остальное не удается, вы можете превратить сохраненный штамп в свою (новую) ветвь. Это воскресит все, что вы делаете reset -away, но только на этой новой ветке. В сущности, , что git stash branch newbranch делает:

    • включить сохраненный индекс в притон в обычной фиксации
    • которого родитель коммита, который был активен (был HEAD фиксации), когда вы сделали git stash save step (и его родительский элемент является тем же самым старым родителем и т. д.);
    • сделать наконечник фиксации указателя newbranch, который является вновь созданной ветвью; и
    • оставьте рабочее дерево и (если сохранено как часть запаса) untracked/все файлы, готовые для фиксации на новой ветке, в которой вы сейчас находитесь.

Это действительно «факт» больше, чем «сущности»: это как git stash branch работает просто потому, что она оставляет i фиксации в stash-bag на месте и делает новый филиал-имя указывая на это.

 Смежные вопросы

  • Нет связанных вопросов^_^