Comment annuler le dernier engagement en git

Comment annuler le dernier engagement en git
Un flux de travail courant à Git est que vous apportez des modifications à votre projet, ajoutez les modifications à la zone de mise en scène, commettez les modifications, apportez de nouvelles modifications, modifiez les modifications, commettez les modifications, et cela continue. Mais que se passe-t-il si vous avez commis à tort vos modifications? Eh bien, ne crains pas. Vous pouvez toujours annuler votre dernier engagement en git. Dans cet article, je vais vous montrer comment annuler le dernier engagement en git. Alors, commençons.

Configuration d'un référentiel GIT de test:

Dans cette section, je vais clone un de mon référentiel GitHub sur mon ordinateur pour configurer un référentiel de test pour cet article. Si vous voulez suivre, alors vous pouvez le faire aussi. Si vous avez votre propre référentiel Git avec qui travailler, alors super! Vous pouvez également l'utiliser.

Pour cloner un de mon référentiel GitHub (https: // github.com / dev-shovon / my-project), exécutez la commande suivante:

$ git clone https: // github.com / dev-shovon / my-project undo_commit_demo

Le référentiel GitHub doit être cloné dans undo_commit_demo / annuaire.

Maintenant, accédez à la undo_commit_demo / Répertoire comme suit:

L'engagement que vous voulez annuler peut être dans une branche différente de la mienne. Je veux annuler le dernier engagement du IE-FIX bifurquer. Alors, je dois tirer la branche IE-FIX De mon référentiel GitHub.

Vous pouvez tirer le IE-FIX Branche de GitHub comme suit:

$ git till Origin ie-Fix

NOTE: Ici, IE-FIX est le nom de la branche.

Le IE-FIX La branche doit être tirée.

Maintenant, vérifiez à la branche (dans mon cas, IE-FIX) à partir de laquelle vous voulez annuler le dernier engagement comme suit:

$ Git Checkout Ie-Fix

Comme vous pouvez le voir, le dernier engagement du IE-FIX la branche est AEC00F3. Dans les sections suivantes, je vais vous montrer des moyens de défaire le dernier engagement sur votre référentiel Git.

Annuler le dernier engagement et garder les changements:

Une façon d'annuler le dernier commit est l'utilisation de réinitialisation soft sur votre référentiel git. Ce que cela fait, c'est que le dernier engagement est supprimé et les modifications que vous avez apportées dans cette validation sont ajoutées à la zone de mise en scène de votre référentiel Git. De cette façon, si vous souhaitez corriger quoi que ce soit, vous pouvez modifier les fichiers et ajouter un nouvel engagement.

Comme vous pouvez le voir, le dernier engagement dans mon IE-FIX la branche est AEC00F3.

$ Git Log --Oneline

De plus, ma zone de mise en scène est propre.

$ statut git

Maintenant, pour supprimer ou annuler le dernier engagement, exécutez la commande suivante:

$ git réinitialisation - tête douce ~ 1

Comme vous pouvez le voir, le validation AEC00F3 est parti.

$ Git Log --Oneline

De plus, le fichier que j'ai modifié dans le dernier commit se trouve dans ma zone de mise en scène.

$ statut git

Maintenant, vous pouvez modifier davantage les fichiers, corriger les erreurs que vous avez commises et recommander les modifications.

Annuler le dernier engagement et supprimer les modifications:

Si le dernier engagement que vous souhaitez supprimer est inutile pour vous, alors vous pouvez envisager une réinitialisation dure sur votre référentiel git. Ce que fait la réinitialisation est, il supprime le dernier engagement comme avant. Mais, il supprime également toutes les modifications que vous avez apportées dans le dernier engagement. Faire une réinitialisation dure uniquement lorsque vous êtes sûr que vous n'avez plus besoin de rien du dernier engagement.

Je vais tirer le IE-FIX branche à nouveau de mon référentiel github pour récupérer le dernier engagement AEC00F3 et retirer à nouveau dans cette section.

$ git till Origin ie-Fix

Comme vous pouvez le voir, le dernier engagement est de retour. Si votre référentiel GIT est téléchargé sur un service GIT Cloud tel que GitHub, vous pouvez également restaurer n'importe quel engagement que vous supprimez à tort.

Comme vous pouvez le voir, ma zone de mise en scène est propre.

$ statut git

Maintenant, pour supprimer le dernier engagement et supprimer les modifications de cette validation, exécutez la commande suivante:

$ git réinitialisation - Tête dure ~ 1

Le dernier engagement doit être supprimé et le DIRIGER Le pointeur doit être mis à jour.

Comme vous pouvez le voir, le validation AEC00F3 est supprimé et le commit immédiatement avant cela (3fffdee) est le courant le dernier engagement.

$ Git Log --Oneline

La zone de mise en scène est également propre. Ainsi, change les fichiers de l'engagement supprimé existe.

$ statut git

Mise à jour du référentiel git distant:

Maintenant que vous avez réussi à supprimer le commit défectueux de votre référentiel Git, vous voudrez peut-être aussi mettre à jour votre référentiel GitHub. C'est le sujet de cette section.

Comme tu peux le voir, statut git montre également que je suis en train de vous engager en retard du référentiel distant.

Avant de mettre à jour mon référentiel GitHub, le commit AEC00F3 existe même si je l'ai retiré du référentiel Git local comme vous pouvez le voir.

Pour synchroniser le référentiel GIT local avec le référentiel GitHub, exécutez la commande suivante:

$ git push - Force Origin Ie-Fix

Les changements du référentiel GIT local doivent être synchronisés avec le référentiel GitHub.

Le référentiel GitHub doit être mis à jour. Comme vous pouvez le voir, le validation AEC00F3 n'est plus répertorié. Le commit immédiatement avant AEC00F3, lequel est 3fffdee est maintenant le dernier engagement.

Donc, c'est comme ça que vous vous débrouillez en dernier à git. Merci d'avoir lu cet article.