Отменить Git Stash Pop

Я сделал всплывающее сообщение git, и теперь у меня много конфликтов. Я сделал весь свой последний код перед git stash pop, так что есть способ вернуться к последнему фиксации и избавиться от всех конфликтов и кода git stash pop вложенных?

Ответ 1

Об этом уже спрашивали и отвечали на stackoverflow (см. Как вернуть репозиторий Git на предыдущую фиксацию?), но простой ответ:

git reset --hard HEAD

Это должно позаботиться о вашей проблеме. Обратите внимание, что это удаляет все незафиксированные изменения из репозитория.

Обратите внимание, что если есть конфликты, сохранение сохраняется. Из закладок:

Применение состояния может привести к сбою с конфликтами; в этом случае это не удалены из списка. Вам необходимо разрешить конфликты вручную и вызовите git stash drop вручную после.

Ответ 2

Reset также можно вызвать в определенных файлах:

git reset HEAD <filename>...

Однако вы не можете жестко записать reset файл. Но после этого вы можете вернуться к изменениям:

git checkout -- <filename>...

Вы будете сохранены, как отметил Лука в Майклом Миломе.

Это полезно, если вы не хотите потерять свои непринятые локальные изменения.

Ответ 3

Если вы больше не хотите видеть работу в всплываемом тайнике, это так же просто, как жесткий reset:

git reset --hard HEAD

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