jeudi 2 février 2012

[Git] Mettre du contenu de côté

... ou comment sauvegarder son travail en cours dans la pile temporaire.

Dans certaines situations où un travail n'est pas terminé ni à jeter et où l'on souhaite le mettre de côté en attendant d'y revenir, le temps de travailler sur autre chose, Git propose d'utiliser une pile dédiée (FiFo) grâce à git stash. Cette commande permet de sauvegarder sans commit, et de revenir au dernier commit de la branche courante (de façon équivalente à git reset --hard HEAD). Au moment de la récupération, Git offre plusieurs possibilités :
  • Voir les éléments de la pile : git stash list
  • Voir les modifications sauvegardées dans un élément de la pile dans la branche courante : git stash show stash@{number}, pour voir les modifications fichier par fichier, et avec l'option -p pour voir les modifications ligne par ligne dans chaque fichier. number=0 désigne le dernier élément, number=1 l'avant-dernier, number=2 l'avant-avant-dernier, etc.
  • Sauvegarder l'index dans la pile, en y joignant un message personnalisé (utile pour se souvenir du contenu sauvegardé) : git stash save "message"
  • Récupérer le dernier élément de la pile dans la branche courante : git stash apply
  • Récupérer un élément précis de la pile dans la branche courante : git stash apply stash@{number}.
  • Créer une branche dans laquelle récupérer le dernier élément de la pile : git stash branch new_branch_name
  • Supprimer un élément de la pile : git stash drop stash@{number}

Aucun commentaire: