Что означает, когда git говорит, что файл нуждается в обновлении?

Я не могу на всю жизнь найти какое-нибудь достойное объяснение сообщения "[файл]: нуждается в обновлении", которое время от времени иногда выскакивает git. Даже официальный git FAQ объясняет это как TODO. Если кто-то может объяснить А) что это означает; и B), как это исправить, я был бы чрезвычайно благодарен.

Ответ 1

Это означает, что вы пытаетесь объединить изменения где-то, но изменения включают изменения в файл, который грязный (в настоящее время изменен в рабочем дереве). Вам необходимо зафиксировать свои выдающиеся изменения или зашить их, вытащить/переустановить/слить/все, что вы делаете, чтобы обновить, и нестать

Ответ 2

Как отмечали другие, сообщение требуется обновление означает, что файл грязный или, другими словами, устаревший. Но вместо того, чтобы делать reset и начинать все заново, что можно сделать, просто git status, а затем git add <file>, если он в списке изменений. Поскольку вы уже могли добавить файл раньше, но затем изменили его. Это случилось со мной, и с этим простым add я решил проблему.

Ответ 3

Войдите в свой производственный/целевой сервер, cd в каталог, содержащий ваше приложение, и выполните эти две команды.

1. Reset до последней версии

ПРЕДУПРЕЖДЕНИЕ, это приведет к удалению всех ваших изменений:

git reset --hard HEAD

2. Потяните изменения

git pull origin master

Ответ 4

Как и ответ на связанный другой вопрос, сообщение просто означает, что у вас есть выдающиеся изменения. Вы также получаете это, например. если вы выполните некоторые изменения с помощью git add, измените свое мнение и сделайте git reset HEAD file с намерением начать.

Ответ 5

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

Для меня сложная часть была с файлом .gitattributes в моем репо. Новый тип двоичного файла был добавлен в другую ветку, но обработка была принудительной в виде текстового файла. Когда файл был загружен из репо с помощью git, EOL (фактически это биты двоичного значения) было заменено - это привело к разнице в двоичном выражении.

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

Ответ 6

В моем случае я продолжал получать

assets/ElipseThree.png: needs update
You must edit all merge conflicts and then
mark them as resolved using git add

У меня были эти файлы в моем каталоге, но они были переименованы в моей текущей ветке. Чтобы исправить, я побежал

$ git mv assets/ElipseThree.png assets/elipseThree.png
$ git add assets/elipseHalfFull.png 
$ git rebase --continue

и это позволило мне продолжить