juste maintenant je vous ai commis et poussé quelque chose ( oui, ma erreur sur la poussée em>) que j'ai décidé que je devrais "revenir" ou "annuler" ou "annuler". Donc, on m'a dit d'émettre Quoi qu'il en soit, après avoir fait que je me suis engagé à nouveau, puis quand j'ai essayé de pousser, j'ai eu l'erreur non rapide. Maintenant, je sais que j'ai vissé quelque chose avec la réinitialisation, quelque chose du long des lignes de mon arbre et de mon arbre d'origine est «incompatible» maintenant, mais je me demande comment résoudre ce problème. Maintenant, je veux juste revenir à l'heure avant d'avoir publié la réinitialisation, de sorte que je puisse simplement revenir manuellement les changements en les prenant manuellement puis commettant, à moins que quelqu'un d'autre ne puisse recommander la bonne façon de revenir à une commission poussée, et par Cela ne signifie pas que l'histoire doit être passée du journal ou de quoi que ce soit. p> git réinitialiser --Soft tête ^ code> à ma fin, et j'ai pensé que cela créerait une commission «revenir» qui sera autrefois commise le ferait comme si le changement ne se produisait jamais. Cela ne me dérange pas si l'histoire du changement est là du tout, c'est ce que j'imaginé serait arrivé. P>
4 Réponses :
Si je comprends votre problème correctement, vous pouvez essayer ce qui suit:
(Je suppose que ceci est votre branche «maître» et que vous appuyez sur «Origine») P>
Synchrony avec votre Remote à atteindre le même état. P>
git push
Vous vouliez utiliser git revert tête code> pour créer un nouveau commit qui annulerait le commit à la tête. Au lieu de cela, vous venez de vous déplacer vers la tête avant la tête actuelle. P>
Merci, cela a du sens, bien que cela aurait probablement été meilleur comme un commentaire étant donné que cela ne résout pas vraiment mon problème. Merci quand même.
Maintenant, je veux juste revenir à l'heure avant d'avoir publié la réinitialisation p>
Si vous voulez seulement annuler le
GIT RESET --SOFT CODE> Vous venez de le faire, vous pouvez rechercher l'ancien identifiant de validation de la tête dans le reflocation P>
$ git reflog $ git reset --soft formerCommit
Merci, cela ressemble à ce que quelqu'un sur IRC m'a dit de faire, mais c'est assez déroutant, alors je vais aller avec la réponse de Rnicholson à des fins de documentation.
Je n'étais pas familier avec Git Reflog. Très cool. Appris quelque chose de nouveau. Ceci est probablement une meilleure solution car elle condense les 3 premières étapes de ma réponse à une commande.
Je ne pouvais pas non plus dire que cela fonctionne, comment cela fonctionne, je pensais qu'après $ GIT RESET --SOFT FIERCOMMIT CODE> Je retournerai à l'état précédent, la tête pointe vers la commission précédente, mais alors quand je Treed à pousser de nouveaux changements, je reçois la même erreur que dans la question que les têtes ont divergée, donc je ne suis pas de ongleDn quel est l'avantage de cela?
@Arpanbanererjee Toute réinitialisation qui déplace la tête entraînerait une force de force.
Bien que ma réponse soit au-delà de ce que vous demandez, je pense que c'est en fait ce que vous avez l'intention de faire.
vous avez utilisé mais maintenant lorsque vous git reset --Soft tête ^ code> pour annuler la commission que vous avez faite . Cela renvoie la copie de travail à l'état avant votre commis (puisque
tête code> sur votre commit actuel, et
tête ^ code> pointe sur celui avant (en supposant qu'il n'y a qu'un seul parent ). p>
GIT PUSH CODE> On vous dit quelque chose comme: P>
*Friday*
git add --all # To add all files whether they are tracked or not
git commit -m "Friday afternoon commit"
git --set-upstream push # --set-upstream is for if the branch doesn't exist on the remote server
*Monday*
git reset --soft HEAD^
git push -f --set-upstream origin <branch>