j'ai utilisé
! [rejected] branch -> branch (non-fast-forward) error: failed to push some refs to 'git@github.com:xxx/xxx.git' To prevent you from losing history, non-fast-forward updates were rejected Merge the remote changes before pushing again. See the 'Note about fast-forwards' section of 'git push --help' for details.
3 Réponses :
Vous pouvez essayer git push -force code> pour forcer la poussée.
--force
git push -f fait la même chose.
@Marco: vrai. Bien que cela doit vraiment être utilisé soigneusement (voir par exemple support.github.com/discussions/repos/... )
En fonction de la configuration de la télécommure, cela peut ne pas fonctionner - tous mes reforms centraux sont configurés avec Recevoir.DenynonFastForwards = true et réception.denydelettes = true, auquel cas une telle chirurgie doit être effectuée sur le serveur distant .
@ebneter: Mais c'est GitHub dont nous parlons ici; Il ne semble pas offrir ce type de paramètre côté serveur: support.github.com/discussions/feature-requests/.../a>
Ah, je n'ai pas vu que c'était Github. Néanmoins, il est important de noter en général.
Correct - comme VONC a dit - cela pourrait vraiment gâcher d'autres contributeurs Repos local si vous forcez des pousses - bien que cela soit parfois un mal nécessaire (j'ai peut-être dû le faire deux fois dans ma durée de vie d'utiliser Git).
@ebneter: dûment noté. En fait, j'ai mis à jour ma réponse pour inclure vos commentaires et plus.
@Vonc: Excellent. C'est bizarre que GitHub ne vous permet pas de configurer des choses de cette façon.
Ajouter à mon réponse précédente et pour aborder le fait qu'un forcé git pousse code > Peut vraiment gâcher les repos locaux d'autres contributeurs, GIT 1.8.5 (Le montant du quatrième trimestre 2013) sera une nouvelle option:
$ git fetch ko next
$ anchor=$(git rev-parse --verify FETCH_HEAD)
$ for remote in ko repo gph github2
do
git push --force-with-lease=refs/heads/next:$anchor $remote next
done
Et après une push -force, d'autres peuvent récupérer joliment: Stackoverflow.com/a/20423029/6309
Réinitialisation GIT CODE> && GIT PUSH CODE> AVEC FORCE OBTROWITE # git push branch_name --force
# local master
$ git push origin master --force
# remote master
$ git push origin/master -f
Vous allez bientôt (git1.8.5, trimestre 2013) faire un
git poussoir --force code> plus attentivement. Voir Ma nouvelle réponse ci-dessous .