Outils pour utilisateurs

Outils du site


dev:git:cas-pratiques:deplacer-modif-vers-nouvelle-branche

Ceci est une ancienne révision du document !


Déplacer les modifications vers une nouvelle branche

Par habitude j’évite de travailler sur la branche master. Par inattention je modifie parfois les fichiers du working directory alors que je suis sur master. A ce moment je n'ai pas fait de commit, je souhaite alors annuler mes modifications, basculer sur une branche de travail et refaire les modifications sur cette branche.

# git branch m'indique que je suis bien sur master
$  git branch 
  experimental
* master
 
# git status confirme que le fichier cdc.adoc a été modifié
$ git status  -s
 M doc/cdc.adoc

Pour éviter d'avoir à annuler et recréer mes modifications je peux utiliser git stash

Si des fichiers ont été placés dans l'index, il faudra les retirer de l'index avec la commande git reset.
# Les modification sont sauvegardées dans une branche temporaire
$ git stash save
Saved working directory and index state WIP on master: 53accfe Intégration de la bibliothèque ncurses
HEAD est maintenant à 53accfe Intégration de la bibliothèque ncurses
 
# git stash list pour afficher les sauvegardes existantes
$ git stash list 
stash@{0}: WIP on master: 53accfe Intégration de la bibliothèque ncurses
 
# On se positionne sur une nouvelle branche de travail
$ git checkout -b menu
 
# On applique le patch sur la branche de travail (applique le dernier stash)
$ git stash apply

Les modifications sont placées sur notre branche de travail, on peut continuer à travailler normalement et faire les commits sur la branche de travail, master reste propre.

Enfin on peut supprimer le stash puisqu'il a été appliqué:

$ git stash clear
dev/git/cas-pratiques/deplacer-modif-vers-nouvelle-branche.1612216289.txt.gz · Dernière modification : 2021/02/01 21:51 de 127.0.0.1