git push rejeté: erreur: impossible de pousser des refs
Je sais que les gens ont posé des questions similaires, mais je crois que les causes de leurs problèmes différents. J'ai fait un hard reset car j'avais foiré mon code assez mauvais
git reset --hard 41651df8fc9
J'ai fait quelques modifications, j'ai fait quelques révisions et maintenant que je suis en train de pousser tous ces commits dans le serveur j'obtiens l'erreur suivante:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]'
Git suggère de faire un git pull et c'est ce que les autres ont suggéré à d'autres utilisateurs. Cependant, je crois qu'un git pull fusionner mon code actuel avec le code que je ne veux pas plus (tête de révision).
Comment puis-je faire un coup de pouce et d'oublier au sujet de la version/révision à venir de moi?
Vous devez vous connecter pour publier un commentaire.
git push -f
si vous avez la permission, mais qui va vis de n'importe qui d'autre qui tire à partir de ce dépôt, donc soyez prudent.Si c'est refusé, et vous avez accès au serveur, comme canzar dit ci-dessous, vous pouvez vous permettre cela sur le serveur avec
git push -f
, qui permettra d'utiliser votre actuelle des pensions de remplacer la distance. Si il y a plusieurs utilisateurs de développement, l'avance rapide est essentiel, sinon, il sera très facile de se passer de dégoût .git branch -f
, par exemple,git branch -f rewind_the_one_I_broke 8120307
par exemple. Vous pouvez exécutergit log
dans un nu-repo afin de trouver le reset-point. Notez que cela a le même effet qu'ungit push -f
mais ignore les crochets.git config receive.denyNonFastForwards false
. J'ai trouvé le mien a été mis àtrue
par défaut.git config receive.denyNonFastForwards false
est nécessaire pour certains de mesgit push --force
commandes fonctionnent. Merci pour la référence.git push -f
produit en fait cette erreurSi vous êtes la seule personne à travailler sur le projet, ce que vous pouvez faire est:
Ceci permettra de définir le bout de origin/master de la même commettre en tant que maître (et ainsi de supprimer les commits entre 41651df et origin/master)
git push HEAD -f
. Pour moi, je pense que vous pouvez utiliser une méthode douce pour ce faire, tout d'abord, utilisezgit fetch
, après cela, utilisezgit rebase -i origin/master
, cela vous permettra de sélectionner le commet.Il suffit de ne
et puis, vous devriez être en mesure de pousser.
Si vous avez commet sur votre propre et de ne pas pousser la direction générale encore, essayez
et puis, vous devriez être en mesure de pousser.
Ce message suggère qu'il y a un crochet sur le serveur qui est en rejetant d'avance rapide pousse. Oui, il n'est généralement pas recommandé et est un bon gardien, mais puisque vous êtes la seule personne à l'utiliser, et vous voulez faire la force de pousser, contactez l'administrateur de l'opération pour permettre de faire de la non-fastforward pousser en supprimant temporairement le crochet ou vous donner l'autorisation dans le crochet pour le faire.
git branch -f
, qui a le même effet, mais ne nécessite pas de s'agiter à propos de la pré-recevoir crochet.Ce que j'ai fait pour résoudre le problème était le suivant:
Assurez-vous également que vous pointez à la branche de droite en cours d'exécution:
pour moi à la suite travaillé, juste couru ces commandes une par une
J'ai fait les étapes suivantes pour résoudre le problème. Sur la branche qui me donne l'erreur:
git pull origin [branch-name]<current branch>