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

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

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". Мне это не кажется правильным. Не следует ли жесткому reset удалять все локальные изменения, позволяя мне вытащить последние без проблем слияния? Я использую git неправильно?:)

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

Ответы

Ответ 1

Общая идея " Entry 'filename' not uptodate. Cannot merge.":

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

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

Ответ 2

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

Ответ 3

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

git merge --abort

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

Ответ 4

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

git add .
git merge --abort