Accueil·Messages d’erreur

git · Git

Le message

Updates were rejected because the remote contains work that you do not have locally.

Ce que cela veut dire

C'est l'explication derrière un push refusé : le distant contient du travail que votre clone n'a pas, et pousser maintenant le supprimerait. Le message apparaît quand plusieurs personnes partagent une branche, ou quand vous avez modifié et committé un fichier depuis l'interface web sans jamais le récupérer. Faites d'abord git pull --rebase origin main puis push, et tout passe. Ajouter --force au mépris de ce conseil fait exactement ce que le conseil vise à empêcher : les commits de l'autre personne disparaissent du serveur et, si personne n'a fait de fetch après son push, ils n'existent plus nulle part.

Le correctif

git pull --rebase origin main
Émis par
git
Git
29

Presque toutes les erreurs de git sont un refus qui signifie « faire cela depuis cet état ferait perdre quelque chose » ; fatal: veut dire que git s'est arrêté sans rien modifier, et les lignes hint: sous la première portent souvent le vrai remède.

Lire un message d’erreur

  • Lisez à partir de la première ligne. Plus on descend, plus il s’agit des entrailles de l’outil ; la cause est généralement en haut.
  • S’il y a un fichier et un numéro de ligne, commencez là — pas la première image de la pile, mais la ligne la plus haute qui nomme un fichier de vous.
  • Cherchez le message tel quel, mais retirez d’abord vos chemins et vos noms de variables : c’est cela qui empêche la correspondance.
  • La même situation se formule autrement selon la version de l’outil. Si les résultats sonnent faux, ajoutez le numéro de version.
  • Avant de coller un correctif, vérifiez ce qu’il jette. Certains sont irréversibles.

Questions fréquentes

Q. Que veut dire « Updates were rejected because the remote contains work that you do not have locally. » ?

C'est l'explication derrière un push refusé : le distant contient du travail que votre clone n'a pas, et pousser maintenant le supprimerait. Le message apparaît quand plusieurs personnes partagent une branche, ou quand vous avez modifié et committé un fichier depuis l'interface web sans jamais le récupérer. Faites d'abord git pull --rebase origin main puis push, et tout passe. Ajouter --force au mépris de ce conseil fait exactement ce que le conseil vise à empêcher : les commits de l'autre personne disparaissent du serveur et, si personne n'a fait de fetch après son push, ils n'existent plus nulle part.

Q. Comment le corriger ?

git pull --rebase origin main — avant de le lancer, vérifiez plus haut ce que cette commande jette.

Q. Quel outil émet cela ?

git. Cela relève de Git, et le message compte 14 mots.

Erreurs voisines