Conserver les modifications lors de l'annulation d'un commit
Lorsque vous annulez un commit, Git annule les modifications introduites par ce commit. Cependant, si vous avez apporté des modifications supplémentaires aux mêmes fichiers depuis le commit annulé, vous souhaiterez peut-être conserver ces modifications. Git propose plusieurs options pour vous aider à y parvenir.
Utilisation de git revert --no-commit
L'option --no-commit
vous permet d'annuler les modifications sans créer immédiatement un nouveau commit. Cela vous donne l'opportunité de réviser les modifications et de décider comment procéder.
git revert --no-commit <commit-hash>
Après avoir exécuté cette commande, vous pouvez réviser les modifications et décider si vous souhaitez créer un nouveau commit ou abandonner les modifications annulées.
Utilisation de git reset
Si vous souhaitez abandonner complètement les modifications annulées et conserver votre répertoire de travail actuel, vous pouvez utiliser la commande git reset
.
git reset --hard <commit-hash>
Cela réinitialisera votre répertoire de travail au commit spécifié, annulant ainsi l'opération d'annulation du commit.
Résolution des conflits
Si les modifications annulées entrent en conflit avec vos modifications actuelles, Git vous demandera de résoudre manuellement les conflits. Vous pouvez le faire en éditant les fichiers en conflit, en choisissant quelles modifications conserver, puis en ajoutant les fichiers résolus à la zone de préparation (staging area).
git add <conflicting-files>
git commit -m "Resolve conflicts after revert"
Après avoir résolu les conflits, vous pouvez poursuivre l'opération d'annulation du commit.
Conservation de modifications spécifiques
Si vous souhaitez conserver des modifications spécifiques du commit annulé, vous pouvez utiliser la commande git cherry - pick
pour appliquer sélectivement ces modifications à votre branche actuelle.
git cherry - pick <commit - hash>
Cela appliquera les modifications du commit spécifié à votre branche actuelle, vous permettant de conserver les modifications que vous souhaitez tout en annulant le reste.
En utilisant ces techniques, vous pouvez annuler efficacement des commits tout en conservant les modifications que vous souhaitez dans votre répertoire de travail.