1 min read

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