Junior
Comment fusionner plusieurs commits en un seul avec Git?
sobes.tech IA
Réponse de l'IA
Pour fusionner plusieurs commits en un seul avec Git, utilisez la commande git rebase -i <commit-ish>.
- Identifiez le commit jusqu'auquel vous souhaitez fusionner. Il peut s'agir d'un hash de commit, d'une branche ou d'une étiquette.
- Exécutez la commande
git rebase -i <commit-ish>. Par exemple, pour fusionner les 3 derniers commits :git rebase -i HEAD~3 - Un éditeur de texte s'ouvrira avec la liste des commits. Le premier commit de la liste (en haut) doit avoir le mot
pick. Les autres commits que vous souhaitez fusionner avec le premier doivent être changés depickàsquashous.pick abcd123 Commit initial squash efgh456 Partie 1 de la fonctionnalité A squash ijkl789 Partie 2 de la fonctionnalité A ... - Enregistrez et fermez l'éditeur.
- Un nouvel éditeur s'ouvrira pour créer le message du commit. Fusionnez ou modifiez les messages des commits selon votre choix pour créer un message cohérent pour le nouveau commit fusionné.
// Message pour le nouveau commit fusionné // Ceci est une combinaison de 3 commits. // Commit initial // Partie 1 de la fonctionnalité A // Partie 2 de la fonctionnalité A - Enregistrez et fermez l'éditeur. Git effectuera la fusion des commits.
Si la branche sur laquelle vous travaillez a déjà été poussée vers un dépôt distant, vous devrez faire un push forcé avec l'option -f ou --force-with-lease.
git push origin <votre_branche> -f
Cela est nécessaire car l'historique des commits a été modifié. Le push forcé peut être dangereux si d'autres développeurs travaillent déjà sur cette branche. Vérifiez toujours si vous pouvez faire un push forcé sur cette branche.
Alternativement, vous pouvez utiliser les options --fixup et --autosquash lors des commits, puis exécuter git rebase -i --autosquash <commit-ish> pour une fusion automatique.