251 votes

Github "Les mises à jour ont été rejetées car la télécommande contient des travaux que vous n'avez pas en local."

J'ai créé un nouveau repo, je l'ai cloné, j'ai ajouté des fichiers dans le répertoire, je les ai ajoutés avec add -A et lorsque j'essaie de pousser en utilisant la fonction git push <repo name> master J'ai compris :

hint : Les mises à jour ont été rejetées parce que le dépôt distant contient des travaux que vous n'avez pas localement. Ceci est généralement causé par un autre dépôt qui pousse sur la même référence. Vous pouvez vouloir d'abord fusionner les changements distants (par ex, hint : 'git pull') avant de pousser à nouveau.

Cela ne semble pas avoir de sens puisqu'il s'agit d'un nouveau dépôt et qu'il ne contient qu'un fichier readme.

406voto

palerdot Points 1210

Cela arrive si vous avez initialisé un nouveau repo github avec README et/ou LICENSE fichier

git remote add origin [//your github url]

//pull those changes

git pull origin master 

// or optionally, 'git pull origin master --allow-unrelated-histories' if you have initialized repo in github and also committed locally

//now, push your work to your new repo

git push origin master

Maintenant vous pourrez pousser votre dépôt sur github. En fait, vous devez fusionner ces nouveaux fichiers initialisés avec votre travail. git pull récupère et fusionne pour vous. Vous pouvez également récupérer et fusionner si cela vous convient.

152voto

L'erreur peut provenir de la structure différente du code que vous soumettez et de celui présent sur GitHub. Cela crée des conflits qui peuvent être résolus par

git pull

Résolution des conflits de fusion :

git push

Si vous confirmez que votre nouveau code est correct, vous pouvez l'utiliser :

git push -f origin master

-f signifie "force".

19voto

Mahyar Points 161

Si c'est votre premier coup de pouce

il suffit de changer le

git push <repo name> master

changez-le comme ça !

git push -f <repo name> master

16voto

Chetabahana Points 3161

Vous pouvez vous référer à : Comment faire face à " refus de fusionner des antécédents non liés " erreur :

$ git pull --allow-unrelated-histories
$ git push -f origin master

3voto

koral Points 60

Les réponses fournies n'ont pas fonctionné pour moi.

J'avais un repo vide sur GitHub avec seulement le fichier LICENSE et un seul commit en local. Ce qui a fonctionné :

$ git fetch
$ git merge --allow-unrelated-histories
Merge made by the 'recursive' strategy.
 LICENSE | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 LICENSE

Aussi avant merge vous pouvez le vouloir :

$ git branch --set-upstream-to origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X