Squash des commits sous IntelliJ de jetbrains

Logo Git

Git permet de faire un squash de plusieurs commits. Le but du squash est de transformer plusieurs commits en un seul. L’arbre des commits sous GIT est ainsi épuré et la relecture de la pull request est facilitée.

Je vais vous expliquer pas à pas comment faire un squash de commits avec Jetbrains, fonctionne aussi bien avec Intellij que PhpStorm.

Comme vous pouvez le constater sur cette capture, j’ai commité et pushé 5 commits.
Pour avoir accès à cette liste de commit, il vous suffit de cliquer sur Version Control, puis sur l’onglet Log.

Liste des commits Git sous IntelliJ

Sous Bitbucket nous retrouvons bien notre liste de commit qui ont été pushé

liste commits sous bitbucket

Sous IntelliJ, dans la liste des commits (onglet Version Control, puis Log), faite un clic droit sur le premier commit, commit1 dans mon exemple.

Sélectionner l’option Interractively Rebase from Here…

interactive rebase action

Une nouvelle popin va s’ouvrir comme le montre la capture suivante

Popin pour faire le rebasing des commits sous IntelliJ

Sélectionner tous les commits suivant le premier. Vous pouvez utiliser la commande Shift pour faire une sélection multiple.
Une fois la liste des commits sélectionnés, faites un clic droit sur un des commits sélectionnés pour ouvrir les options.
Pour sélectionner l’option squash

squash commits

Il ne vous reste plus qu ‘à cliquer que Start Rebasing

squash commits

InteliJ va ensuite ouvrir une nouvelle popin qui va contenir la liste des commentaires de tous les commits squashés. Vous pouvez bien entendu changer le message.

squash comments edited

Cliquer ensuite sur Resume Rebasing

Il ne vous reste plus qu’à pusher votre unique commit, via un Ctrl + Shift + K, et faire un Force Push.
Si vous faites seulement un push, InteliJ risque de vous demander de faire des merges et de rebase en boucle

git force push

Dans les logs de IntelliJ, nous avons plus qu’un commit avec le message de commit que l’on a changé. Il en est de même sous Bitbucket.

log commits after rebase

log commits after rebase bitbucket


Un commentaire
Commenter

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *