Retour à la validation précédente - Github pour MAC (un retour est déjà en cours)
Je pense que j'ai foiré ici.
J'ai fait quelques changements à mon code à partir d'une dernière validation de l'ajout de nouvelles fonctionnalités et réalisé que quelque autre morceau de code a désormais agir étrangement. J'ai décidé de revenir à un ancien commit (poussé à distance) afin de tester si les fonctionnalités de travail.
Avant, j'ai appuyé sur la Restauration, j'ai commis mon actuellement des changements parce que je n'ai pas envie de les perdre. Après avoir commis (ne pas pousser à distance), j'ai fait la restauration à qui ancien commit. (à noter qu'il y avait bien quelques engage entre les commettent je roule soutenu et celui que j'ai commis juste maintenant).
Tout a bien fonctionné et mon code est revenue à qui s'engagent. La fonctionnalité a été défaillante, il y en qui s'engagent ainsi donc, j'ai décidé de revenir à mon dernier commit.
Cependant, je ne savais pas comment faire pour faire que de la restauration de la dernière validation. Mais il m'a donné une erreur.
error: a cherry-pick or revert is already in progress
hint: try "git cherry-pick (--continue | --quit | --abort)"
fatal: revert failed
(32768)
Maintenant, il semble que la plupart des choses sont de retour, mais la version actuelle du code n'est pas le même que mon dernier commit. Il est quelque part entre les deux. =(
Qu'ai-je fait de mal? [Je ne suis pas demander de l'innocence, je sais que j'ai fait il mal ;)]
Ce qui était la bonne façon de le faire? [Je pense que je devrais avoir ramifiée première]
source d'informationauteur tGilani
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas ce que github pour Mac de restauration, mais il me semble que vous feriez mieux d'utiliser la ligne de commande pour résoudre le problème à la main:
git cherry-pick --abort
- pour arrêter toute cherry-picking en coursgit branch -va
- va vous montrer où sont vos pointeurs de droite maintenantassurez-vous que votre répertoire de travail est propre:
git status
- ne doit pas présenter de toute modification ou mise en scène fichiersgit stash
- si rien modifié encore présentsgit reset --hard your_local_branch github/remote_branch
- faire de la branche locale de refléter l'état tel qu'il est sur le côté éloigné. évidemment, vous n'avez pas besoin de faire un reset si votre actuelle direction de la pointe vers la même livraison que de la télécommande. Si vous êtes détaché à la TÊTE de l'état (git status vais vous dire à ce sujet), puis de revenir à l'état normal, juste à la caisse de votre succursale locale.Maintenant de décider ce que vous voulez vraiment atteindre:
I. se débarrasser de la mauvaise engager?
Utilisation interactive rebase et supprimez la ligne défectueuse de valider, puis de la force de pousser à la distance repo github (disons défectueux commettre arrivé 10 s'engage ago)
git rebase -i HEAD~11
II. revenir défectueux engager? - ne vous recommande pas de le faire après qu'un autre s'engage, sauf si vous êtes absolument sûr que le suivant s'engage ne pas toucher le même morceau de code. Cela aura pour effet de créer une inversion de s'engager (si la ligne a été ajouté par des erreurs de commettre, elle sera supprimée par revenir, et vice-versa)
git revert {commit-sha1}
III. Modifier défectueux engager? l'utilisation interactive de rebase, mais lui ordonner d'arrêter au défectueux s'engager pour la modification. Quand il s'arrête de modifier la modifier et continuer changement d'année de base, puis de la force de pousser à la branche distante (utiliser la commande rebase de la solution I )
Après vous avez terminé si de rien était planqué utilisation
git stash pop
pour apporter les modifications.espère que ça aide!