Невозможно выполнить "git stash pop" из-за конфликта

19

У меня есть локальный репозиторий git, и у меня было несколько измененных файлов. Тогда мне нужно было быстро произвести исправление чего-то, чтобы я

  • спрятал мои изменения (git stash)
  • отредактированный файл (файл vi)
  • совершено (git commit)
  • выскочил тайник

Это привело к конфликту.

# On branch master
$ git stash pop
Auto-merging page/search.php
CONFLICT (content): Merge conflict in page/search.php
$ git status
# On branch master
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      page/search.php

Если я пытаюсь очистить изменения и повторно применить тайник, происходит то же самое (конфликт). Меня не волнует страница / search.php, но я бы хотел получить другие файлы из тайника.

Есть ли способ конвертировать stash в патч или просто получить файлы такими, какими они были при копировании?

romaninsh
источник

Ответы:

20

Тайник уже был применен к другим файлам; это только page/search.phpто, что вы должны объединить вручную. После этого просто бегите, git resetчтобы отменить изменения и продолжить взлом - или git add ...и зафиксировать.

user1686
источник
Да. Точно. После того, как я восстановил патч с -p, я обнаружил, что другие файлы уже обновлены.
Романиньш
3
очень хорошо, тогда git stash popразрешите свои конфликты, чтобы git add xпотом git resetвыйти из постановки, спасибо!
Куанг
@Quang Должен быть stash pop --continueпсевдоним reset. :)
Kaz
12

Решено с:

git stash show -p
romaninsh
источник
Это спасло мой день, =)
анатолий техтоник
Делает -pчто-нибудь здесь?
Joost
2
Показать? -п ? что это делает? Как «шоу» может быть связано с разрешением конфликтов?
Арнольд Роа
2
Эта команда отображает изменения, внесенные в тайник, позволяя вам слить вручную
Десмонд Вайндорф,
1
Я нашел git stash show -p | git apply && git stash dropиз coderwall.com/p/anxp0g/force-a-git-stash-pop , и я стараюсь , чтобы проверить это будет работать , прежде чем запускать его. :-)
PatS
7

После выполнения git stash popкоманды вам необходимо разрешить конфликт git stash dropвручную, а затем выполнить вручную, как следует из man git-stashпредложенного.

westoque
источник