Déplacer des commits effectués sur la branche master
Avec Git, mon flux de travail habituel consiste à ne jamais faire le moindre commit sur la branche master
d'un projet. Pour effectuer des modifications sur cette branche, je dois effectuer une Merge / Pull request à partir d'une autre branche.
Cependant il m'est déjà arrivé, sans m'en rendre compte, de committer du code sur la branche master
sans avoir penser à créer une nouvelle branche au préalable.
Heureusement pour nous, Git permet simplement de résoudre ce problème.
# version complete
$ git switch --create "your_new_branch" origin/master
# version light
$ git switch -c "your_new_branch" origin/master
Grâce à cette commande Git va créer une nouvelle branche nommée your_new_branch
qui contiendra toutes les commits effectués depuis le dernier commit présent sur la branche origin/master
. Vous pouvez aussi remplacer origin/master
par le sha d'un commit qui servira alors de point de départ pour la nouvelle branche créée.
Finalement il ne reste plus qu'à retourner sur la branche master
et à supprimer les commits indésirables.
# Retour sur la branch master
$ git switch master
# Suppression des commits
$ git reset --hard origin/master