Comment revenir à la version la plus récente en Git?

j'ai récemment déménagé de SVN à Git et je suis un peu confus à propos de quelque chose. J'avais besoin d'exécuter la version précédente d'un script via un débogueur, donc j'ai fait git checkout <previous version hash> et j'ai fait ce que j'avais à faire.

maintenant je veux revenir à la nouvelle version, mais je ne sais pas le hachage pour elle. Quand je tape git log , Je ne le vois pas.

Comment faire? Aussi, y a-t-il un moyen plus facile de changer de version qu'en tapant des hachures-quelque chose comme "revenir deux versions" ou "aller à la plupart des chronologiquement récente"?

234
demandé sur Mateusz Piotrowski 2010-08-24 21:16:07
la source

9 ответов

git checkout master devrait faire l'affaire. Pour revenir en arrière deux versions, vous pourriez dire quelque chose comme git checkout HEAD~2 , mais mieux pour créer une branche temporaire basé sur ce temps, donc git checkout -b temp_branch HEAD~2

293
répondu Paul Betts 2010-08-24 21:17:29
la source

lors de la vérification d'une propagation spécifique, git crée une branche détachée. Donc, si vous appelez:

$ git branch 

vous verrez quelque chose comme:

* (detached from 3i4j25)
  master
  other_branch

pour revenir à la tête de la branche principale, vous avez juste besoin de vérifier à nouveau à votre branche principale:

$ git checkout master

cette commande supprimera automatiquement la branche détachée.

Si git checkout ne fonctionne pas, vous avez probablement modifié dossiers conflictuels entre les directions générales. Pour vous empêcher de perdre le code git exige que vous vous occupiez de ces fichiers. Vous avez trois options:

  1. Stockez vos modifications (vous pouvez les faire apparaître plus tard):

    $ git stash
    
  2. rejeter les changements réinitialiser la branche détachée:

    $ git reset --hard
    
  3. créer une nouvelle branche avec les modifications précédentes et les engager:

    $ git checkout -b my_new_branch
    $ git add my_file.ext
    $ git commit -m "My cool msg"
    

après cette vous pouvez retourner à votre branche principale (version la plus récente):

$ git checkout master
37
répondu Thomio 2017-01-09 15:04:08
la source

Cela a fait l'affaire pour moi (j'étais encore sur la branche master):

git reset --hard origin / master

29
répondu averasko 2013-08-01 18:13:47
la source

je commence juste à creuser plus profondément dans git, donc je ne suis pas sûr de comprendre correctement, mais je pense que la bonne réponse à la question de L'OP est que vous pouvez lancer git log --all avec une spécification de format comme ceci: git log --all --pretty=format:'%h: %s %d' . Il s'agit de la version actuelle cochée (HEAD) et vous pouvez simplement prendre la suivante dans la liste.

BTW, ajoutez un alias comme celui-ci à votre .gitconfig avec un format légèrement meilleur et vous pouvez lancer git hist --all :

  hist = log --pretty=format:\"%h %ai | %s%d [%an]\" --graph

en ce qui concerne les versions relatives, j'ai trouvé ce post , mais il ne parle que des versions plus anciennes, il n'y a probablement rien à se référer aux versions plus récentes.

6
répondu haridsv 2017-05-23 15:18:27
la source

vous pouvez vérifier en utilisant des noms de branche, pour une chose.

je sais qu'il y a plusieurs façons de bouger la tête, mais je laisse à un expert en gitan le soin de les énumérer.

je voulais juste suggérer gitk --all -- Je l'ai trouvé énormément utile en commençant par git.

5
répondu Jay 2010-08-24 21:20:43
la source

pour retourner à la dernière version:

git checkout <branch-name> 

par exemple, git checkout master ou git checkout dev

3
répondu Reggie Pinkham 2016-11-10 22:35:08
la source

quand vous retournez à une version précédente,

$ git checkout HEAD~2
Previous HEAD position was 363a8d7... Fixed a bug #32

vous pouvez voir votre log feature(hash) avec cette commande même dans cette situation;

$ git log master --oneline -5
4b5f9c2 Fixed a bug #34
9820632 Fixed a bug #33
...

master peut être remplacé par un autre nom de succursale.

puis vérifiez-le, vous serez en mesure de revenir à la fonctionnalité.

$ git checkout 4b5f9c2
HEAD is now at 4b5f9c2... Fixed a bug #34
2
répondu kujiy 2016-05-10 04:13:53
la source

une solution plus élégante et simple est d'utiliser

git stash

il retournera à la version locale la plus rébarbative de la branche et aussi enregistrer vos modifications dans stash, donc si vous voulez annuler cette action faire:

git stash apply
0
répondu Ilya Gazman 2015-11-29 17:36:05
la source

parfois vous avez besoin d'un peu de -f si git est difficile. Avertissement, faire cela seulement si vous savez à quoi s'attendre.

git checkout <branch-name> -f

-2
répondu visc 2018-04-23 16:42:45
la source

Autres questions sur git git-checkout