Comment revenir à la version la plus récente de 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, alors j’ai effectué une git checkout et j’ai fait ce que je devais faire.

Maintenant, je veux revenir à la nouvelle version, mais je ne connais pas le hash pour cela. Quand je tape git log , je ne le vois pas.

Comment puis-je faire ceci? En outre, existe-t-il un moyen plus facile de changer de version que de taper des hashs – quelque chose comme “revenir en arrière de deux versions” ou “aller au plus récent chronologiquement”?

git checkout master devrait faire l’affaire. Pour revenir en arrière de deux versions, vous pourriez dire quelque chose comme git checkout HEAD~2 , mais mieux vaut créer une twig temporaire basée sur cette heure, alors git checkout -b temp_branch HEAD~2

Lorsque vous passez à une validation spécifique, git crée une twig 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 twig principale, il vous suffit de récupérer à nouveau votre twig principale:

 $ git checkout master 

Cette commande supprimera automatiquement la twig détachée.

Si git checkout ne fonctionne pas, vous avez probablement modifié les fichiers en conflit entre les twigs. Pour vous éviter de perdre du code, git vous demande de traiter ces fichiers. Vous avez trois options:

  1. Rangez vos modifications (vous pouvez les afficher plus tard):

     $ git stash 
  2. Supprimer les modifications réinitialisant la twig détachée:

     $ git reset --hard 
  3. Créez une nouvelle twig avec les modifications précédentes et validez-les:

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

Après cela, vous pouvez revenir à votre twig principale (version la plus récente):

 $ git checkout master 

Cela a fait le tour pour moi (j’étais toujours sur la twig master):

git reset – origine / maître d’origine

Je commence juste à creuser plus profondément dans git, donc je ne sais pas si je comprends bien, mais je pense que la bonne réponse à la question du PO est que vous pouvez lancer git log --all avec une spécification de format comme ceci: git log --all --pretty=format:'%h: %s %d' . Cela marque la version extraite actuelle sous la forme (HEAD) et vous pouvez simplement saisir 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é cet article , mais il ne parle que des versions plus anciennes, il n’y a probablement rien à faire référence aux nouvelles versions.

Vous pouvez vérifier en utilisant les noms de twig, pour une chose.

Je sais qu’il y a plusieurs façons de déplacer la tête, mais je laisserai le soin à un expert git de les énumérer.

Je voulais juste suggérer gitk --all – je l’ai trouvé extrêmement utile lorsque j’ai commencé avec git.

Lorsque vous revenez à une version précédente,

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

Vous pouvez voir votre journal de fonctionnalités (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 twig.

Ensuite, jetez un coup d’oeil, vous pourrez revenir à la fonctionnalité.

 $ git checkout 4b5f9c2 HEAD is now at 4b5f9c2... Fixed a bug #34 

Pour revenir à la dernière version:

 git checkout  

Par exemple, git checkout master ou git checkout dev

Une solution plus élégante et simple consiste à utiliser

 git stash 

Il retournera à la version locale la plus récente de la twig et sauvegardera également vos modifications dans le cache, donc si vous souhaitez annuler cette action, procédez comme suit:

 git stash apply 

Parfois, vous avez besoin d’un peu -f si git est difficile. Attention, ne le faites que si vous savez à quoi vous attendre.

git checkout -f