Git stash pop - нуждается в слиянии, не может обновить индекс - PullRequest
92 голосов
/ 16 марта 2012

Я не могу открыть свой тайник, потому что я слил ветку, которая явно конфликтует с моим тайником, и теперь мой тайник, похоже, не может быть вытолкнут.

app.coffee: needs merge
unable to refresh index

Кто-нибудь знает, как решить эту проблему?

ИСПРАВЛЕНО!

Оказывается, что фактической проблемой был неразрешенный конфликт слияния из-за слияния, НЕ , что тайник мог вызвать конфликт слияния.

Решение: зафиксируйте конфликтующий файл.

Ответы [ 7 ]

55 голосов
/ 17 марта 2012

Во-первых, отметьте git status.
Как упоминается в ОП,

Фактическая проблема заключалась в неразрешенном конфликте слияния из-за слияния, а НЕ в том, что тайник мог вызвать конфликт слияния.

Именно здесь git status будет упоминать этот файл как "both modified"

Разрешение: зафиксируйте конфликтующий файл.


Подобную ситуацию вы можете найти 4 дня назад на момент написания этого ответа (13 марта 2012 г.) с этим сообщением: " 'Извлечение невозможно из-за того, что вы распаковали файлы" ":

julita@yulys:~/GNOME/baobab/help/C$ git stash pop
help/C/scan-remote.page: needs merge
unable to refresh index

То, что вы сделали, - это исправили конфликт слияния (отредактировал правильный файл и зафиксировал его):
Смотрите" Как мне исправить конфликты слияния в Git?"

Что сделал автор поста в блоге:

julita@yulys:~/GNOME/baobab/help/C$ git reset --hard origin/mallard-documentation
HEAD is now at ff2e1e2 Add more steps for optional information for scanning.

Т.е. полностью прервал текущее слияние, что позволило применить git stash pop.
Смотрите" Отмена слияния в Git".

Это ваши два варианта.

13 голосов
/ 12 апреля 2016

У меня возникла эта проблема, затем я разрешил конфликт и сделал коммит, а затем снова сделал git stash pop, восстанавливая тот же самый тайник (вызывая тот же конфликт :-().

Что мне нужно было сделать, этоgit stash drop чтобы избавиться от него.

8 голосов
/ 22 февраля 2018

Это намного проще, чем принятый ответ.Вам необходимо:

  1. Проверить git status и пути без него под ним.Исправьте конфликты.Вы можете пропустить этот шаг, если вы предпочитаете сделать это позже.

  2. Добавьте все эти файлы по незанятым путям для индексации, используя git add <filename>.

  3. Теперь сделайте git stash pop.Если у вас возникнут какие-либо конфликты, их снова нужно будет решить.

3 голосов
/ 25 февраля 2015

Если у кого-то возникла эта проблема вне слияния / конфликта / действия, то это может быть файл блокировки git для вашего проекта, вызывающий проблему.

git reset
     fatal: Unable to create '/PATH_TO_PROJECT/.git/index.lock': File exists.
rm -f /PATH_TO_PROJECT/.git/index.lock
git reset
git stash pop
1 голос
/ 11 июня 2018

Я обнаружил, что наилучшим решением является отделение вашего тайника и последующее разрешение.

git stash branch <branch-name>

если вы отмените очистку своего тайника, вы можете потерять свои изменения и вам придется вернуться к журналу.

0 голосов
/ 25 июня 2019

Вот как я решил эту проблему:

  • состояние git (см. Сочетание файлов из предыдущего stash, pull, stash pop и продолжение работы.)
  • git stash(см. вопрос слияния потребностей)
  • git add.(добавьте файлы, чтобы моя работа локально разрешала мое объединенное)
  • git stash (без ошибок)
  • git pull (без ошибок)
  • git stash pop (без ошибок ипродолжить работу)
0 голосов
/ 27 мая 2019

Вам нужно добавить app.coffee к постановке.

Сделайте git add app.coffee, и тогда вы сможете применить свой тайник (после этого коммита и толчка).

...