Przez całe życie nie mogę znaleźć żadnego przyzwoitego wyjaśnienia komunikatu „[plik]: wymaga aktualizacji”, który czasami wypluwa gita. Nawet oficjalne FAQ gita wyjaśnia to jako TODO. Gdyby ktoś mógł wyjaśnić A) co to znaczy; i B) jak to naprawić, byłbym niezmiernie wdzięczny.
156
Odpowiedzi:
Oznacza to, że próbujesz scalić zmiany skądś, ale zmiany obejmują modyfikacje pliku, który jest brudny (obecnie zmodyfikowany w drzewie roboczym). Musisz zatwierdzić swoje zaległe zmiany lub ukryć je, wyciągnąć / ponownie bazować / scalić / cokolwiek robisz, aby zaktualizować i rozpakować
źródło
git svn rebase
z brudną kopią roboczą. Stash save, rebase, stash pop i wszystko było w porządku ze światem.Jak zauważyli inni, komunikat o aktualizacjach potrzeb oznacza, że plik jest brudny lub, innymi słowy, nieaktualny. Ale zamiast robić reset i zaczynać wszystko od nowa, można zrobić po prostu,
git status
a następniegit add <file>
czy znajduje się na zmienionej liście. Ponieważ mogłeś już wcześniej dodać plik, ale potem go zmieniłeś. To mi się przydarzyło i dzięki temu prostemuadd
rozwiązałem problem.źródło
Zaloguj się do serwera produkcyjnego / docelowego,
cd
do katalogu zawierającego aplikację i wykonaj te dwie komendy.1. Zresetuj do najnowszej wersji
2. Wyciągnij zmiany
źródło
Jak mówi odpowiedź na inne pytanie, do którego prowadzi łącze, wiadomość oznacza po prostu, że masz zaległe zmiany. Otrzymujesz to również, np. Jeśli wprowadzisz pewne zmiany za pomocą
git add
, a następnie zmienisz zdanie i zrobiszgit reset HEAD file
z zamiarem rozpoczęcia od nowa.źródło
git reset HEAD file
powoduje pojawienie się tego samego komunikatuTen błąd może wystąpić, gdy proces rebase wprowadza dodatkowe zmiany w plikach, których nie ma w gałęzi docelowej.
Dla mnie najtrudniejsza część była z
.gitattributes
plikiem w moim repozytorium. Nowy typ pliku binarnego został dodany w innej gałęzi, ale jego obsługa została wymuszona jako plik tekstowy. Gdy plik został pobrany z repozytorium przez git, wartości EOL (w rzeczywistości są to bajty wartości binarnej) zostały zastąpione - co spowodowało różnicę binarną.Dodanie nowego wpisu do obsługi nowego typu pliku jako binarnego i ponowienie całego procesu rozwiązało problem.
źródło
W moim przypadku ciągle dostawałem
Miałem te pliki w swoim katalogu, ale w mojej obecnej gałęzi zostały zmienione. Więc żeby to naprawić, pobiegłem
i pozwoliło mi to kontynuować
źródło