Что это значит, когда git говорит, что файл "нуждается в обновлении"? - PullRequest
149 голосов
/ 18 апреля 2010

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

Ответы [ 6 ]

102 голосов
/ 18 апреля 2010

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

21 голосов
/ 30 апреля 2015

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

7 голосов
/ 09 декабря 2014

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

1. Сбросить до последней версии

ВНИМАНИЕ, все ваши изменения будут удалены:

git reset --hard HEAD

2. Вытащить изменения

git pull origin master

3 голосов
/ 05 октября 2012

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

2 голосов
/ 22 сентября 2017

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

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

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

1 голос
/ 13 января 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...