web-dev-qa-db-fra.com

Qu'est-ce que cela signifie quand git dit qu'un fichier "a besoin de la mise à jour"?

Pendant toute ma vie, je ne trouve aucune explication décente du message "[fichier]: a besoin de la mise à jour" que Git crache parfois de temps en temps. Même le git officiel FAQ a expliqué ceci comme étant un TODO. Si quelqu'un pouvait expliquer A) ce que cela signifie; et B) comment résoudre ce problème, je vous en serais extrêmement reconnaissant.

145
rofrankel

Cela signifie que vous essayez de fusionner les modifications quelque part, mais que ces modifications incluent des modifications apportées à un fichier sale (actuellement modifié dans votre arbre de travail). Vous devez valider vos modifications en attente, ou les stocker, extraire/redéfinir/fusionner/quoi que vous fassiez pour mettre à jour et décompresser

99
Michael Mrozek

Comme d'autres l'ont souligné,nécessite une mise à jourmessage signifie que le fichier est dirty ou, en d'autres termes, obsolète. Mais au lieu d'effectuer une réinitialisation et de tout recommencer à zéro, il suffit simplement de git status, puis de git add <file>si, il figure dans la liste modified. Parce que vous pouviez déjà ajouter le fichier auparavant, mais ensuite le changer. Cela m'est arrivé et avec cette simple add j'ai résolu le problème.

17
lomza

Connectez-vous à votre serveur de production/destination, cd au répertoire contenant votre application et exécutez ces deux commandes.

1. Réinitialiser à la dernière version

ATTENTION, cela effacera toutes vos modifications:

git reset --hard HEAD

2. Tirez les modifications

git pull Origin master

5
NXT

Comme le dit la réponse à l'autre question liée, le message signifie simplement que vous avez des changements en suspens. Vous obtenez également cela par exemple. Si vous modifiez des changements avec git add, changez d'avis et faites git reset HEAD file avec l'intention de tout recommencer.

2
tripleee

Cette erreur peut se produire lorsque le processus de refonte de base apporte des modifications supplémentaires aux fichiers qui ne se trouvent pas sur la branche cible.

Pour moi, la partie la plus délicate était avec le fichier .gitattributes dans mon dépôt. Un nouveau type de fichier binaire a été ajouté dans une autre branche, mais sa gestion a été forcée sous forme de fichier texte. Lorsque le fichier a été téléchargé à partir du référentiel par git, les EOL (c’est en fait une valeur binaire) ont été remplacés, ce qui a entraîné une différence binaire.

L'ajout d'une nouvelle entrée pour gérer le nouveau type de fichier en tant que fichier binaire et le fait de réessayer tout le processus ont résolu le problème pour moi.

1
proxy

Dans mon cas, j'ai continué à obtenir 

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

J'avais ces fichiers dans mon répertoire, mais ils avaient été renommés dans ma branche actuelle

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

et cela m'a permis de continuer

0
ThinkDigital