Si vous êtes un développeur Web ou un ingénieur logiciel, il est très probable que vous poussez beaucoup de commits sur votre Git dépôt tous les jours.
Cependant, dans certains cas, vous avez validé certains fichiers qui ne devraient pas être transférés vers votre dépôt Git.
Parfois, vous souhaiterez peut-être effectuer des modifications supplémentaires avant de lancer le commit .
En conséquence, vous devez annuler le dernier commit de votre dépôt Git.
Dans ce tutoriel, nous allons voir comment vous pouvez facilement annuler le dernier commit, peut-être pour valider à nouveau les modifications ultérieurement.
Table des matières
Annuler la dernière validation Git avec réinitialisation
Le moyen le plus simple d’annuler le dernier commit Git est d’exécuter la commande « git reset » avec l’option « –soft » qui conservera les modifications apportées à vos fichiers. Vous devez spécifier le commit à annuler qui est « HEAD ~ 1 » dans ce cas.
Le dernier commit sera supprimé de votre historique Git.
Si vous n’êtes pas familier avec cette notation, « HEAD ~ 1 » signifie que vous voulez réinitialiser HEAD (le dernier commit) à un commit avant dans l’historique du journal.
Alors quel est l’impact de cette commande?
La commande « git reset » peut être considérée comme l’opposé de la commande « git add », ajoutant essentiellement des fichiers à l’index Git.
Lors de la spécification de l’option « –soft », Git est invité à ne pas modifier les fichiers dans le répertoire de travail ou dans l’index du tout.
À titre d’exemple , disons que vous avez ajouté deux fichiers dans votre dernier commit mais que vous souhaitez effectuer quelques modifications sur ce fichier.
En conséquence, vous utiliserez « git reset » avec l’option « –soft » afin d’annuler le dernier commit et d’effectuer des modifications supplémentaires.
Comme vous pouvez le voir, en annulant le dernier commit, le Le fichier est toujours dans l’index (modifications à valider) mais le commit a été supprimé.
Génial, vous avez réussi à annuler le dernier commit Git sur votre dépôt.
Réinitialisation matérielle du commit Git
Dans la section précédente, nous avons vu comment vous pouvez facilement annuler le dernier commit en préservant les modifications apportées aux fichiers dans l’index.
Dans certains cas, vous voulez simplement se débarrasser du commit et des modifications apportées aux fichiers.
C’est le but de l’option « –hard ».
Afin d’annuler le dernier commit et d’annuler toutes les modifications dans le répertoire de travail et l’index, exécutez la commande « git reset » avec l’option « –hard » et spécifiez le commit avant HEAD (« HEAD ~ 1 »).
Soyez prudent lorsque vous utilisez « –hard »: les modifications seront supprimées du répertoire de travail et de l’index, vous perdrez toutes les modifications.
De retour à l’exemple que nous avons détaillé précédemment, disons que vous avez validé un nouveau fichier dans votre référentiel Git nommé « file1 ».
Maintenant, supposons que vous vouliez annuler le dernier commit et annuler toutes les modifications.
Super, voyons maintenant l’état de notre dépôt Git .
Comme vous pouvez le voir, le fichier a été complètement supprimé du dépôt Git (index + répertoire de travail)
Réinitialisation mixte Git commit
Pour annuler le dernier commit Git, conservez les modifications dans le répertoire de travail mais PAS dans l’index, vous devez utiliser la commande « git reset » avec l’option « –mixed ». À côté de cette commande, ajoutez simplement « HEAD ~ 1 » pour le dernier commit.
À titre d’exemple, disons que nous avons ajouté un fichier nommé » file1 « dans un commit que nous devons annuler.
Pour annuler le dernier commit, nous exécutons simplement la commande » git reset « avec l’option » –mixed « .
Lorsque vous spécifiez l’option » –mixed « , le fichier sera supprimé de l’index Git mais pas du répertoire de travail.
Par conséquent, le » –mixed ”Est un » mélange « entre la réinitialisation logicielle et matérielle, d’où son nom.
Génial! Vous avez trouvé un autre moyen d’annuler le dernier commit tout en préservant les modifications apportées aux fichiers.
Dans la section suivante, nous allons voir une autre façon d’annuler le dernier commit en utilisant la commande git revert.
Annuler le dernier commit avec revert
Afin d’annuler le dernier commit Git , utilisez le « git revert » et spécifiez le commit à annuler qui est « HEAD » pour le dernier commit de votre historique.
La commande « git revert » est légèrement différente de la commande « git reset » car elle enregistrera un nouveau commit avec les changements introduits en annulant le dernier commit.
Notez aussi qu’avec « git reset »vous avez spécifié« HEAD ~ 1 »car la commande reset définit une nouvelle position HEAD tandis que la restauration annule en fait la validation spécifiée.
En conséquence, vous devrez à nouveau valider les modifications pour que les fichiers soient annulé et pour que le commit soit annulé.
En conséquence, disons que vous avez commis un nouveau fichier dans votre dépôt Git mais que vous voulez annuler ce commit.
Lors de l’exécution de la commande « git revert », Git ouvrira automatiquement votre éditeur de texte afin de valider les modifications.
Lorsque vous avez terminé avec le message de validation, un message sera affiché avec le nouveau hachage de validation.
Maintenant, si vous deviez inspecter à nouveau votre historique Git, vous remarqueriez qu’un nouveau commit a été ajouté afin d’annuler le dernier commit de votre dépôt.
Conclusion
Dans ce didacticiel, vous avez vu toutes les façons d’annuler le dernier commit de votre dépôt Git.
Vous avez appris le « git reset ”Et les différentes façons de l’exécuter en fonction de ce que vous voulez conserver ou non.
Vous avez également appris la différence entre la commande git reset et la commande git revert, cette dernière ajoutant un nouveau commit dans l’ordre pour restaurer celui de votre dépôt.
Si vous êtes curieux de connaître Git ou le moteur logiciel eering, nous avons une section complète qui lui est dédiée sur le site, alors assurez-vous de la vérifier!
Si vous aimez Git, vous aimerez peut-être nos autres articles:
- Comment cloner un référentiel Git
- Comment désinstaller des fichiers Git
- Comment choisir les commits Git