git (sourcetree) revenir à commettre un qui n'a pas été poussé et a été "renversé" accidentellement
Je suis encore assez nouveau pour git versionnement et peut-être tout simplement perdu beaucoup de travail (je l'espère mais il y a un moyen de revenir en arrière, c'est pourquoi je pose la question ici).
- Je utiliser SourceTree sur OsX pour git révision.
Je n'ai pas commettre pour un bon bout de temps et maintenant juste voulu commettre beaucoup de changements. J'ai choisi de pousser immédiatement après la livraison. Lorsque la poussée a pris beaucoup de temps, j'ai vérifié mon dossier et a remarqué que j'ai accidentellement avait choisi un gros dossier de création qui ne doit pas être cochée. Donc j'ai annulé le push (j'ai reçu un message disant quelque chose comme priorité a été un succès, mais pousser l'était pas).
Donc, même si j'ai interrompu le pousser, j'ai toujours vu cette commettre dans ma branche master. Je voulais annuler cette sorte que j'ai pu commettre à nouveau (cette fois sans le dossier de création). Je rightclicked sur la livraison et il y avait un "Reverse commettre..." option, j'ai cliqué. Mais au lieu de supprimer cette révision, il a ajouté une autre révision marqué " Version "Nom de la livraison j'ai voulu annuler"'.
Mauvaise chose, est - maintenant, toutes mes modifications locales semblent avoir disparu et mes fichiers sont sur l'état d'il y a un mois.
depuis le commit (dont j'ai annulé la push) est encore dans la liste, je me demande si je peux en quelque sorte retourner là-bas? Est-il possible d'obtenir le local changements que j'ai faits au cours des derniers mois en arrière? J'ai une sauvegarde de mes fichiers, mais c'est également près de deux semaines.
C'est de cette façon sourcetree ressemble actuellement:
comme vous pouvez le voir, le précédent succès de commit/push que j'ai faite était le 20 mai. Alors aujourd'hui j'ai essayé de commit/push de nouvelles fonctionnalités, mais interrompue au cours de la poussée. Ensuite, j'ai 'inversé' ce (interrompu), s'engager, qui aparently réinitialiser tous mes fichiers locaux de l'état à partir du 20 mai. Sourcetree montre qu'il y a 2 Pushs à faire (ce qui je suppose sont l'interruption de la pousser et de la pousser pour la "reverse" commit).
Est-il possible que je peux retourner à mon état, j'ai eu droit avant de s'engager aujourd'hui?
Merci beaucoup
OriginalL'auteur user1282931 | 2013-06-12
Vous devez vous connecter pour publier un commentaire.
D'abord annuler la revenir s'engager, de jeter les changements qu'il a créé:
Puis à l'annulation de la mis à jour le rendu graphique commettre, mais garder ces changements dans votre arbre de travail (vos fichiers locaux):
Je ne veux pas laisser mes fichiers locaux comme ils le sont maintenant (comme ils le sont actuellement dans l'état que de la 20 mai!). Je veux qu'ils soient dans l'état où ils ont été quand j'ai commis (mais pas poussé!) aujourd'hui
J'ai besoin de l'modifications locales d'avant la première s'engager aujourd'hui. pas les variations locales comme ils sont maintenant. ou disons, j'ai besoin de la validation de l'étiquette "mis à jour le rendu graphique" - je n'ai pas pousser à distance cependant
ok, j'ai mis à jour la réponse à réfléchir que vous souhaitez supprimer à la fois s'engage, mais gardez à l'état des fichiers après la première validation.
bon, et cela fonctionne même si les changements n'ont pas été poussé à distance? Je vais essayer ça, merci. Est-ce assez pour faire une copie complète du dossier contenant le .git dossier pour avoir une sauvegarde de l'état actuel, dans le cas où je galère encore plus? 🙂
OriginalL'auteur Klas Mellbourn