GitHub a une belle section intitulée "Traitant de "non-fast-forward" erreurs"
Cette erreur peut être un peu écrasante au premier abord, n'ayez pas peur.
Il suffit de mettre, git ne peut pas faire le changement sur la télécommande sans perdre s'engage, si elle refuse le pousser.
Cela est généralement causé par un autre utilisateur en le poussant vers la même direction. Vous pouvez remédier à cela par l'extraction et la fusion de la branche distante, ou à l'aide de pull pour effectuer les deux à la fois.
Dans d'autres cas, cette erreur est le résultat de la puissance destructrice de modifications apportées localement à l'aide de commandes telles que git commit --amend
ou git rebase
.
Alors que vous pouvez remplacer la télécommande par l'ajout d' --force
de la push
de commande, vous devriez le faire que si vous êtes absolument certain de ce que vous voulez faire.
Force-pousse peut causer des problèmes pour les autres utilisateurs qui ont extrait la branche distante, et est considéré comme une mauvaise pratique. En cas de doute, n'a pas la force de pousser.
Git ne peut pas faire des changements sur la télécommande comme une avance rapide de fusion, qui un Visuel Git de Référence illustre comme:
Ce n'est pas exactement votre cas, mais permet de voir ce "fast-forward" (où l' HEAD
d'une branche est simplement déplacé vers un nouveau plus récents s'engager).
Le "branch master->master (non-fast-forward) Already-up-to-date
" est habituellement utilisé pour les sections locales qui n'ont pas suivi de leur distance de contre-partie.
Voir, par exemple, DONC, la question "git pull dit à jour, mais git push rejette non-fast forward".
Ou les deux branches sont connectées, mais dans disagremment avec leur histoire respective:
Voir "sans fin GIT histoire - ce que je fais mal?"
Cela signifie que vous êtes à la subversion de la branche et de votre télécommande git branche master ne sont pas d'accord sur quelque chose.
Un peu de changement a été poussé/commis à l'un qui n'est pas dans l'autre.
Le feu jusqu' gitk --all
, et il devrait vous donner un indice quant à ce qui s'est passé - look pour les "fourches" dans l'histoire.