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.

log commits IntelliJ

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

liste commits 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

 

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

rebasing commits

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

 


Commenter

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

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.