Git

Comment annuler le dernier commit dans Git

Comment annuler le dernier commit dans Git
Un flux de travail courant dans Git consiste à apporter des modifications à votre projet, à ajouter les modifications à la zone de préparation, à valider les modifications, à effectuer de nouvelles modifications, à effectuer les modifications, à valider les modifications, et cela continue encore et encore. Mais que faire si vous avez commis par erreur vos modifications? Eh bien, n'ayez pas peur. Vous pouvez toujours annuler votre dernier commit dans Git. Dans cet article, je vais vous montrer comment annuler le dernier commit dans Git. Alors, commençons.

Configurer un référentiel Git de test :

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

Pour cloner l'un de mes référentiels 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, naviguez jusqu'au undo_commit_demo/ répertoire comme suit :

Le commit que vous souhaitez annuler peut être dans une branche différente de la mienne. Je veux annuler le dernier commit du ie-fix branche. Donc, je dois tirer la branche ie-fix depuis mon dépôt GitHub.

Vous pouvez tirer le ie-fix branche de GitHub comme suit :

$ git pull origin ie-fix

REMARQUE: Ici, ie-fix est le nom de la branche.

le ie-fix la branche doit être retirée.

Maintenant, passez à la caisse (dans mon cas, ie-fix) à partir duquel vous souhaitez annuler le dernier commit comme suit :

$ git checkout ie-fix

Comme vous pouvez le voir, le dernier commit du ie-fix la branche est aec00f3. Dans les sections suivantes, je vais vous montrer comment annuler le dernier commit sur votre référentiel Git.

Annuler le dernier commit et conserver les modifications :

Une façon d'annuler le dernier commit est d'utiliser une réinitialisation logicielle sur votre référentiel Git. Ce que cela fait, c'est que le dernier commit est supprimé et les modifications que vous avez apportées dans ce commit sont ajoutées à la zone de transit de votre référentiel Git. De cette façon, si vous voulez réparer quoi que ce soit, vous pouvez modifier les fichiers et ajouter un nouveau commit.

Comme vous pouvez le voir, le dernier commit dans mon ie-fix la branche est aec00f3.

$ git log --oneline

De plus, ma zone de transit est propre.

$ git statut

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

$ git reset --soft HEAD~1

Comme vous pouvez le voir, le commit aec00f3 est parti.

$ git log --oneline

De plus, le fichier que j'ai modifié dans le dernier commit est dans ma zone de transit.

$ git statut

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

Annuler le dernier commit et supprimer les modifications :

Si le dernier commit que vous souhaitez supprimer vous est inutile, vous pouvez envisager une réinitialisation matérielle de votre référentiel Git. Ce que fait la réinitialisation matérielle, c'est qu'elle supprime le dernier commit comme avant. Mais, il supprime également toutes les modifications que vous avez apportées dans le dernier commit. Effectuez une réinitialisation matérielle uniquement lorsque vous êtes sûr de n'avoir plus besoin de rien du dernier commit.

je vais tirer le ie-fix branchez à nouveau de mon dépôt GitHub pour récupérer le dernier commit aec00f3 et supprimez-le à nouveau dans cette section.

$ git pull origin ie-fix

Comme vous pouvez le voir, le dernier commit est de retour. Si votre référentiel Git est téléchargé sur un service cloud Git tel que GitHub, vous pouvez également restaurer tout commit que vous supprimez par erreur.

Comme vous pouvez le voir, ma zone de transit est propre.

$ git statut

Maintenant, pour supprimer le dernier commit et supprimer les modifications de ce commit, exécutez la commande suivante :

$ git reset --hard HEAD~1

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

Comme vous pouvez le voir, le commit aec00f3 est supprimé et le commit juste avant cela (3fffdee) est le courant le dernier commit.

$ git log --oneline

La zone de transit est également propre. Ainsi, les fichiers de modifications du commit supprimé existent.

$ git statut

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

Maintenant que vous avez supprimé avec succès le commit défectueux de votre référentiel Git, vous souhaiterez peut-être également mettre à jour votre référentiel GitHub. C'est le sujet de cette rubrique.

Comme tu peux le voir, statut git montre également que je suis en retard de 1 commit par rapport au référentiel distant.

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

Pour synchroniser le dépôt Git local avec le dépôt GitHub, exécutez la commande suivante :

$ git push --force origin ie-fix

Les modifications du référentiel Git local doivent être synchronisées avec le référentiel GitHub.

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

C'est ainsi que vous annulez le dernier commit dans Git. Merci d'avoir lu cet article.

Meilleurs jeux à jouer avec le suivi des mains
Oculus Quest a récemment introduit l'idée géniale du suivi manuel sans contrôleurs. Avec un nombre toujours croissant de jeux et d'activités qui exécu...
Comment afficher la superposition OSD dans les applications et jeux Linux en plein écran
Jouer à des jeux en plein écran ou utiliser des applications en mode plein écran sans distraction peut vous couper des informations système pertinente...
Top 5 des cartes de capture de jeu
Nous avons tous vu et aimé des gameplays en streaming sur YouTube. PewDiePie, Jakesepticye et Markiplier ne sont que quelques-uns des meilleurs joueur...