web-dev-qa-db-fra.com

Git Push a échoué, "les mises à jour non rapides ont été rejetées"

J'ai édité mes référentiels GIT via Git Online. Après avoir essayé de pousser mes modifications de code local, j'ai eu une erreur: 

Git Push failed, To prevent from losing history, non-fast forward updates were rejected.

Comment puis-je réparer cela?

94
Sarath

Tirez les changements en premier:

git pull Origin branch_name
133
iafonov

Ajoutez --force à votre ligne de commande si vous êtes sûr de vouloir pousser. Par exemple. use git Push Origin --force (Je recommande la ligne de commande car vous trouverez beaucoup plus de support auprès d’autres utilisateurs. Cela n’est peut-être pas possible avec SmartGit.) Consultez ce site pour plus d’informations: http: //help.github. com/télécommandes/

80
Matt

Avant de pousser, faites un pull avec l'option rebase. Les modifications que vous avez apportées en ligne (dans votre origine) seront ainsi appliquées et appliquées localement, puis ajoutées par-dessus vos modifications locales.

git pull --rebase

Maintenant, vous pouvez pousser à distance

git Push 

Pour plus d'informations, consultez Git Rebase expliqué et Chapitre 3.6 Git Branching - Rebasing .

20
satishgoda

J'ai rencontré la même erreur, il suffit d'ajouter "--force" à la commande, cela fonctionne

git Push Origin master --force
12
Wen Qi

J'ai eu le même problème. 
La raison en était que ma branche locale avait perdu le suivi au profit de son homologue distant.

Après

git branch branch_name --set-upstream-to=Origin/branch_name
git pull

et en résolvant les conflits de fusion, j'ai pu pousser.

4
hardmooth

Vous pouvez ajouter --force-with-lease à la commande, cela fonctionnera.

git Push --force-with-lease

--force est destructif car il écrase de manière inconditionnelle le référentiel distant avec tout ce que vous avez localement. Mais --force-with-lease veille à ne pas écraser le travail des autres.

Voir plus d'infos ici

3
igorjosesantos

(Un) Solution pour Netbeans 7.1: Essayez un pull. Cela va probablement aussi échouer. Maintenant, jetez un coup d'oeil dans les journaux (ils sont généralement affichés maintenant dans l'IDE). Il y a une/plusieurs lignes disant:

"Le tirage a échoué à cause de ce fichier:"

Recherchez ce fichier, supprimez-le (faites une sauvegarde avant). Il s’agit généralement d’un fichier .gitignore, vous ne supprimerez donc pas de code. Refaire la Push. Tout devrait bien fonctionner maintenant.

1
Sliq

C'est ce qui a fonctionné pour moi. Vous pouvez le trouver dans la documentation git ici

Si vous êtes sur la branche souhaitée, vous pouvez faire ceci:

git fetch Origin
# Fetches updates made to an online repository
git merge Origin YOUR_BRANCH_NAME
# Merges updates made online with your local work
0
CodeChops

Parfois, en tirant sur votre git, le HEAD se détache. Vous pouvez le vérifier en entrant la commande: 

git branch 
  • (HEAD détaché de 8790704)

    maîtriser

    développer

Il est préférable de passer à votre succursale et de tirer un coup d’essai de votre succursale respective.

git checkout develop

git pull Origin develop

git Push Origin develop
0
Abhinav

Rencontré le même problème, pour le résoudre, exécutez les commandes git suivantes.

  • git pull {url} --rebase
  • git Push --set-upstream {url} master

Vous devez d'abord avoir créé le référentiel sur github.

0
blackFoxCoder

J'ai le même problème ... J'ai résolu avec

git checkout <name branch>
git pull Origin <name branch>
git Push Origin <name branch>
0
Andrea Perdicchia