J'avais un référentiel qui avait quelques mauvais commits (D, E et F pour cet exemple).Git reset --hard et un dépôt distant
maître A-B-C-D-E-F et origine/de maître
j'ai modifié le référentiel local spécifiquement avec un git reset --hard
. Je pris une branche avant la remise à zéro maintenant j'ai une pension qui ressemble à:
A-B-C master
\ D-E-F old_master
A-B-C-D-E-F origin/master
Maintenant je besoin de quelques parties de ces mauvais commits donc je cerise cueillies les morceaux que je avais besoin et fait une nouvelle engage maintenant je ce qui suit localement:
A-B-C-G-H master
\ D-E-F old_master
Maintenant, je veux pousser cet état de choses au repo distant. Cependant, lorsque je tente de faire une git push
Git me donne poliment la brosse au large:
$ git push origin +master:master --force
Total 0 (delta 0), reused 0 (delta 0)
error: denying non-fast forward refs/heads/master (you should pull first)
To [email protected]:myrepo.git
! [remote rejected] master -> master (non-fast forward)
error: failed to push some refs to '[email protected]:myrepo.git'
Comment puis-je obtenir la prise en pension à distance pour prendre l'état actuel du repo local?
Le est un «presque» doublon de plusieurs «comment puis-je pousser les questions d'histoire modifiées», par ex. voir la réponse ici http://stackoverflow.com/questions/253055/how-do-i-push-amended-commit-to-the-remote-git-repo/255080#255080 –
C'est vrai et j'avais cherché StackOverflow pour une réponse avant de poster. Cependant, ma recherche n'avait trouvé que des réponses dans lesquelles un git push --force a résolu le problème. Merci pour le lien vers votre message :) – robertpostill
Vous allez bientôt (git1.8.5, Q4 2013) être capable de [faire un 'git push -force' plus attentivement] (http://stackoverflow.com/a/18505634/6309) . – VonC