Comment puis-je pousser modifié s'engager à la distance dépôt Git?

Quand j'ai travaillé un peu avec mon code source, j'ai fait mon truc habituel commettre et puis j'ai poussé à un dépôt distant. Mais ensuite, j'ai remarqué que j'ai oublié d'organiser mon importations dans le code source. Je fais donc de la modifier de commande pour remplacer la précédente livraison:

> git commit --amend

Malheureusement, la validation ne peut pas être poussé vers le dépôt. Il est rejeté comme ceci:

> git push origin
To //my.remote.repo.com/stuff.git/
 ! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to '//my.remote.repo.com/stuff.git/'

Que dois-je faire? (Je peux accéder au dépôt distant.)

  • Que faire si mon --amend a plus qu'à changer le message de commit? De toute façon à modifier le dernier message de commit seule, si elle a déjà été poussé à distance? Je l'ai fait sur Github et j'ai obtenu le même message au sujet de la non rapide vers l'avant. Puis j'ai appliqué une solution ci-dessous, mais la fusion juste ajouté plus de messages de commit sur le dessus..
  • Je pense que c'est une FAQ. Un message de validation est haché avec le commettre, alors chaning ça change de la revid (hash). Si elle n'est pas claire: non, vous ne le peut pas. IIRC pouvez stocker out-of-band info dans les notes (de sorte que vous pouvez annoter existants s'engage sans les modifier). Étiquette spécifique s'engage, utiliser les tags
  • Vous allez bientôt (git1.8.5, T4 2013) être en mesure de faire un git push -force plus attentivement.
  • Ici est le style cow-boy. N'apprenez pas tout plus ou ne chasse pas les moyens pour annuler la dernière git modifier. Juste ajouter un peu de code de l'espace réservé, je veux dire, Ajouter quelques commentaires, le Nettoyage un peu de code ou simplement ajouté quelques dash dash dash.... Maintenant faire une réelle s'engager et de le pousser à distance. Fait !
  • Si votre -modifier l'a été seulement de changer le message de commit et que vous n'avez pas fait de supplémentaires locale s'engage depuis, vous pouvez réinitialiser votre succursale locale de la télécommande s'engager à ce que vous avez poussé avant de modifier le message de commit.
InformationsquelleAutor Spoike | 2008-10-31