Ответ 1
Вы разрешили конфликт в своем файле (возможно, см. сноску), но Git не знает, закончились вы или нет. Вы должны указать Git, что вы закончили разрешение этого конфликта. (В противном случае, если это позволит вам двигаться дальше, и вы на самом деле не разрешили его, вы могли бы найти всевозможные способы стрелять себе в ногу.)
Насколько я знаю, способ сделать это:
git add <file> # stage the resolved version, which marks it as resolved
git reset HEAD <file> # unstage the changes, leaving the resolution just in the work tree
Кажется, должен быть способ сделать оба сразу с update-index
, но это не очевидно для меня из быстрого взгляда. (Но опять же, для фактических конфликтов слияния, вы никогда не хотите отмечать конфликт как разрешенный без постановки контента, это просто для stashes, что это возникает.)
И, как говорит VonC в своем ответе, если это повторится, вы можете легко увидеть, какие вещи имели конфликты слияния при применении stash с помощью git status
. Они будут перечислены красным цветом (если у вас есть цвет) и скажите unmerged
(или, может быть, deleted by us/them
, если это был конфликт удаления/изменения).
Сноска: Оглядываясь назад на ваш вопрос, я не могу сказать, исправили ли вы конфликты или нет - вы только что сказали "пока все хорошо". "Предупреждение", которое вы видели, действительно означает предложение немедленно разрешить конфликты. Конфликты возникли при попытке объединить те изменения, которые вы вытащили с изменениями, которые вы спрятали. Вы должны решить этот конфликт и получить свое дерево работы в согласованное состояние, прежде чем сможете двигаться в любом случае. Справьтесь с ним так же, как вы можете слить конфликт - посмотрите в файле, найдите маркеры конфликта, выясните, какой контент сохранить! (И затем оглянитесь назад, чтобы закончить.)