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.
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
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.
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
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.
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.
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