2017-08-14 6 views
3

Mon partenaire de programmation et moi-même, étant relativement nouveaux avec Git et Gitkraken, avons fait quelques erreurs, avons poussé quelques fois et commirent dans le mauvais ordre, et nous avons fait des erreurs. Je voudrais aller chercher un instantané de plusieurs validations, et le comparer manuellement à l'état actuel du code. Une commande le long des lignes deRevenir à un commit précédent dans Gitkraken

« Prenez l'état du répertoire de travail à ce commit historique » ou mieux encore, « me donner le contenu de cette commettras historique dans un répertoire de travail différent, que je nommerai "

Les options qui me sont données ne ressemblent pas exactement à ça. Je vois "reset master to this commit" dans plusieurs versions, mais aucun de ces titres ne me convainc que je vais regarder l'état précédent sans endommager le chemin de retour à l'état actuel. Est-ce que je manque quelque chose? Quelle est la meilleure façon de faire ce que j'essaie de faire?

Répondre

0

Je vous suggère d'utiliser git reflog, cette commande contient un historique local de vos validations et changements, avec ce journal vous verrez tous les événements de votre dépôt local.

Après avoir trouvé la commettras exacte que vous souhaitez récupérer, vous pouvez définir que commettras comme point de départ avec git reset --soft [email protected]{n}

ce --soft fait est

Does not touch the index file or the working tree at all (but resets the 
head to <commit>, just like all modes do). This leaves all your changed 
files "Changes to be committed", as git status would put it. 

Après cela, vous aurez tous les changements Dans votre zone de scène, vous pouvez soit décider de les valider à nouveau, soit changer quelque chose.

Je vous suggère de lire la section this de Git's book et spécialement la section this sur les choses à défaire.

PS. en plus, vous pouvez utiliser git reset autant de fois que vous le souhaitez, car toutes les commandes que vous utilisez sont enregistrées dans git reflog et à cause de cela, si vous faites quelque chose que vous ne voulez pas, vous pouvez simplement l'annuler aussi.

Hope it helps

0

... mais aucun de ces titres me convaincre que je vais me regarder l'état précédent sans endommager le chemin du retour à l'état actuel ...

Tout d'abord, vous pouvez toujours revenir en arrière. GitKraken fournit le bouton pratique Annuler qui vous permet de revenir à la plupart des choses que vous faites avec un simple bouton. Si vous voulez être sûr que vous pouvez revenir en arrière facilement, vous pouvez simplement créer une branche backup. Si les choses tournent mal, vérifiez-le et vous êtes de retour. Ainsi, vous pouvez vous détendre et simplement essayer les choses sans avoir à vous soucier de casser quoi que ce soit. La question est maintenant ce que vous voulez vraiment faire:

  • « Prenez l'état de répertoire de travail à cette commettre historique »

    Si vous voulez juste revenir à un état antérieur (à savoircommit), vous pouvez utiliser le reset <branch> to this commit - hard. Vous serez de retour au commit sélectionné comme si rien ne s'était passé. Si votre état prédous est toujours accessible depuis n'importe quelle branche (c'est le cas si vous avez créé une branche de sauvegarde), vous pouvez toujours regarder tous les commits et leurs changements. Sachez que vous perdez des modifications non validées et non validées lors d'une réinitialisation matérielle.

  • « me donner le contenu de ce engagement historique dans un répertoire de travail différent, que je nommerai »

    Git ne connaît qu'un seul répertoire de travail, donc ce n'est pas directement possible. Cependant, vous pouvez comparer votre état actuel à un précédent, comme l'a suggéré @Christopher Díaz Riveros. Au lieu d'une réinitialisation hard, vous pouvez effectuer une soft. Cela réinitialisera votre répertoire de travail à la validation sélectionnée, mais conserve toutes les modifications (par rapport à votre état précédent) en tant que modifications par étapes. Cela vous permet de les consulter facilement, car ils apparaissent dans la partie inférieure droite de GitKraken et vous pouvez les ignorer ou les valider au besoin.