Почему я иногда вижу, что “Имя файла записи" не обновлено.Не удается объединить ”. после "git reset --hard" и "git pull"?

StackOverflow https://stackoverflow.com/questions/878554

  •  22-08-2019
  •  | 
  •  

Вопрос

Иногда, когда я делаю следующее...

git reset --hard
HEAD is now at 0123abde comment is here
git pull
Updating 0123abde..456789fa

Я получаю сообщение об ошибке...

error: Entry 'filename' not uptodate. Cannot merge.

Единственное решение, которое я нашел, - это 'git reset --hard', удалить файлы-нарушители, а затем выполнить 'git pull'.Мне это кажется неправильным.Разве полная перезагрузка не должна удалять все локальные изменения, что позволит мне получить последнюю версию без каких-либо проблем со слиянием?Я неправильно использую git?:)

Это на компьютере CI, поэтому любые изменения здесь нежелательны.Я использую git версии 1.6.1.9.g97c34 в Windows Vista.

Это было полезно?

Решение

Общая идея , лежащая в основе "Entry 'filename' not uptodate. Cannot merge." есть:

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

IT было сообщено что это сообщение может быть "ложным" в какой-то момент (потенциально потому, что"git pull" не обновлял индекс перед попыткой слияния), но исправление было в Git1.6.1.
Однако это все еще может быть в mSysGit 1.6.1, так что вы видите ту же ошибку в более поздней версии mSysGit ?(например, 1.6.3)

Другие советы

У меня была такая же проблема, и я переименовал файл, который был причиной этого, и выполнил git pull.Он извлек этот отсутствующий файл и устранил проблему.

Самое простое решение, которое я нашел для этой проблемы, это:

git add .
git merge --abort

У меня была такая же проблема, когда я пытался запустить

git merge --abort

Чтобы заставить это сработать, я внес изменения, которых не хотел.Как только я это сделал, git смог успешно отменить их.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top