Maison  >  Article  >  outils de développement  >  Comment supprimer le commit sur github

Comment supprimer le commit sur github

PHPz
PHPzoriginal
2023-04-06 12:48:141804parcourir

À mesure que les programmeurs maîtrisent de plus en plus Github, ils peuvent rencontrer divers problèmes. Parmi eux, la suppression d’un commit est l’un des problèmes courants. Avant d'écrire cet article, nous devons connaître quelques bases de Git pour mieux comprendre le processus de suppression des commits.

Git est un système de contrôle de version distribué (DVCS). Cela permet à plusieurs personnes de travailler sur le même projet. Tout le monde peut apporter des modifications au code et appliquer les modifications au référentiel partagé. Lorsque tout le monde souhaite fusionner ses modifications dans une base de code partagée, un composant important de Git - branch (branche) s'avère utile. Chaque branche est un enregistrement indépendant et des modifications peuvent être ajoutées via la commande commit. La commande commit enregistre les modifications dans la base de données locale de Git et attribue un hachage SHA-1 comme identifiant.

Supprimer un commit dans Git n'est pas une opération courante, car chaque commit est un enregistrement indépendant dans la base de données Git. Chaque changement est un « instantané » immuable, et non une différence de changements. Par conséquent, la suppression d'une validation peut détruire l'historique des validations d'autres personnes, rendant la bibliothèque partagée inutilisable ou impossible à fusionner. Donc, si vous souhaitez supprimer une validation, concentrez-vous sur la façon d’annuler la validation sans casser la base de code.

Tout d'abord, si vous souhaitez simplement annuler toutes les modifications locales et écraser le contenu de la branche actuelle, vous pouvez utiliser la commande suivante :

git reset --hard HEAD

Cette commande pointera le pointeur HEAD (c'est-à-dire le dernier commit de la branche actuelle) vers le commit spécifié et restaurez l'arborescence de travail et la zone de préparation vers ce commit. Cela effacera également toutes les modifications non validées. Cependant, veuillez noter que cela supprimera toutes les modifications locales et écrasera toutes les modifications. Si vous souhaitez quand même conserver certaines modifications, vous devez d'abord les enregistrer sous et utiliser cette commande pour revenir au commit précédent (comme 'git reset --hard HEAD~2').

Deuxièmement, si vous souhaitez simplement annuler le commit tout en conservant toutes les modifications locales, vous pouvez utiliser la commande suivante :

git reset HEAD~

Cette commande pointe le pointeur HEAD vers son nœud parent mais ne modifie pas l'arborescence de travail. L’annulation des validations restera en dehors de l’arborescence de travail et de la zone de préparation. Vous pouvez continuer à modifier le fichier et soumettre les modifications en tant que nouveau commit.

Enfin, si vous avez poussé les modifications vers une bibliothèque partagée et souhaitez supprimer le commit, utilisez la commande suivante :

git revert <commit的SHA-1值>

Cette commande annulera le commit spécifié et créera un nouveau commit qui annulera le commit spécifié. Vous pouvez spécifier plusieurs validations, puis fusionner les validations annulées pour obtenir une meilleure combinaison.

Il y a quelques points à garder à l’esprit lors de la suppression de commits dans Git. Tout d’abord, réfléchissez bien avant d’ajouter des modifications à votre référentiel local ou à votre bibliothèque partagée. Les commits sont immuables et leur suppression peut provoquer un chaos encore plus grand. Deuxièmement, soyez prudent avec les commandes Git, notamment sur les bases de code partagées. Une mauvaise utilisation de ces commandes peut entraîner des conflits qui ne peuvent pas être fusionnés, voire une perte de données qui ne peuvent pas être récupérées. Enfin, il est recommandé de sauvegarder vos données avant d'apporter des modifications afin d'éviter les effets indésirables de vos modifications.

Supprimer un commit peut être l'une des opérations les plus délicates dans Git. Cependant, si vous comprenez quelques bases et que vous l'abordez avec prudence, vous devriez être en mesure de mener à bien la tâche sans détruire l'historique des validations des autres.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn