Retour aux articles

Gagner en efficacité avec le git rebase.

Organiser le projet et améliorer sa lisibilité en utilisant des commandes simples pour travailler efficacement.

Git
Gagner en efficacité avec le git rebase.

Publié le 24/09/2024, dernière mise à jour le 05/10/2024

Les opérations réalisées sur git peuvent grandement améliorer la lisibilité et la compréhension d'un projet.

Prérequis

S'assurer d'être à jour avec le dépôt distant.

git pull

Fusionner deux branches en utilisant git merge

Se placer sur la branche sur laquelle on veut fusionner le travail.

git checkout master

Fusionner le travail de la branche de développement dans la branche master.

git merge dev

Déplacer une branche en utilisant git rebase

Se placer sur la branche que l'on souhaite déplacer.

git checkout dev

Déplacer la branche sur celle souhaitée.

git rebase master

Squasher des commits en utilisant git rebase

Prenons l'exemple ou il y a une branche avec deux commits et je veux garder tout le travail à l'intérieur d'un seul commit, c'est là qu'on peut squasher les commits.

git checkout dev

Nous allons spécifier le nombre de commits à intégrer dans l'historique.

git rebase --interactive dev HEAD~2

L'éditeur est lancé avec le détail de l'opération en cours.

pick ffb2d36 ✨ My first commit
s 8407ee4 ✨ My second commit

# Rebasage de 06d0e7e..8407ee4 sur 06d0e7e (2 commandes)
#
# Commandes :
#  p, pick <commit> = utiliser le commit
#  r, reword <commit> = utiliser le commit, mais reformuler son message
#  e, edit <commit> = utiliser le commit, mais s'arrêter pour le modifier
#  s, squash <commit> = utiliser le commit, mais le fusionner avec le précédent
#  f, fixup [-C | -c] <commit> = comme "squash", mais en ne gardant que le message
#                     du commit précédent, à moins que -C ne soit utilisé, auquel cas, conserver
#                     ne conserver que le message de ce commit ; -c est identique à -C mais ouvre
#                     un éditeur
#  x, exec <commit> = lancer la commande (reste de la ligne) dans un shell

J'ai spécifié le comportement attendu pour mon deuxième commit, j'ai préfixé par s pour squasher mes commits.

Annuler un rebase en cours

Il peut arriver qu'un rebase se passe mal et dans ce cas, mieux vaut annuler l'action.

git rebase --abort

Schéma

Différence entre git merge et git rebase

Conclusion

Le rebase permet de garder un historique plus lisible et de mieux visualiser l'ensemble du projet. La documentation de GitHub explique bien la commande rebase dans le détail.

Partage cet article sur les réseaux sociaux avec tes amis

Laissez un commentaire

Connectez-vous pour laisser un commentaire