У меня есть несколько файлов, которые не были отслежены в Git. Я внес некоторые изменения и хотел их зафиксировать, но понял, что забыл сначала проверить неизмененные файлы. Поэтому я спрятал файлы, а затем добавил неизмененные версии.
Затем, когда я применяю тайник к хранилищу, у меня возникают конфликты из-за уже добавленных файлов.
Как я могу применить тайник и принудительно использовать версии в тайнике по сравнению с оригиналами в хранилище?
Спасибо
git rm
перед этимgit stash apply
.git
будет рассматриваться как небольшая модификация.Ответы:
Используйте
git checkout
вместоgit stash apply
:Это восстановит все файлы в текущем каталоге до их сохраненной версии.
Если есть изменения в других файлах в рабочем каталоге, которые следует сохранить, вот менее жесткая альтернатива:
Если в индексе есть изменения или слияние коснется файлов с локальными изменениями, git откажется от слияния. Отдельные файлы могут быть извлечены из тайника с помощью
или в интерактивном режиме с
источник
git checkout stash -- .
Эта команда буквально ничего не делала, когда я ее запускал.git checkout stash -- .
в самой верхней родительской папке, содержащей мои изменения, в противном случае он применял изменения только к папке, из которой я выполнил команду..
указывает текущий каталог (вы можете заменить его другим путем вместо смены каталога). Я обновил свой ответ, чтобы прояснить ситуацию.git stash show -p | git apply
а затем,
git stash drop
если вы хотите сбросить спрятанные предметы.источник
Чтобы принудительно
git stash pop
запустить эту командуисточник
TL; DR:
Длинная версия:
Вы получаете эту ошибку из-за незафиксированных изменений, которые вы хотите перезаписать. Отмените эти изменения с помощью
git checkout HEAD
. Вы можете отменить изменения в конкретном файле с помощьюgit checkout HEAD path/to/file
. После устранения причины конфликта вы можете подать заявку как обычно.источник