Quelle est la différence entre git reset -mixed, -soft et -hard ?

Quelle Est La Difference Entre Git Reset Mixed Soft Et Hard



Sur Git, chaque commit est lié au commit précédent, et le HEAD pointe vers le commit le plus récent dans la branche de travail. L'historique des commits est stocké sous la forme d'une arborescence de commits. Cependant, les développeurs doivent parfois modifier l'historique des commits. A cet effet, le « $ git réinitialiser ” La commande est utilisée pour modifier l'historique du référentiel Git et corriger les erreurs qui ont été commises.

Cet article expliquera brièvement la différence entre git reset –hard, –soft et –mixed.

Quelle est la différence entre git reset -mixed, -soft et -hard ?

Git fournit plusieurs options de réinitialisation. Sur la base de la façon dont ils gèrent les commits, toutes les options disponibles sont différentes les unes des autres. Ils modifient tous l'historique de Git et reculent le HEAD. De plus, ils gèrent les changements différemment, tels que :







  • Le ' -doux ” option utilisée avec le “ $ git réinitialiser ” pour conserver les fichiers et renvoyer les modifications de validation à l'index de staging Git.
  • ' $ git reset –mixte ” est utilisé pour annuler les modifications de validation et supprimer le fichier de l'index de staging sans le supprimer du répertoire de travail.
  • Le ' -difficile » option avec le « $ git réinitialiser ” La commande est utilisée pour supprimer toutes les modifications et les supprimer du répertoire de travail local.

Prenons un exemple pour voir comment le ' $ git réinitialiser ” La commande fonctionne avec différentes options !



Étape 1 : Accédez au référentiel Git souhaité

Tout d'abord, déplacez-vous vers le référentiel Git souhaité en utilisant le ' CD ' commande:



$ CD 'C:\Aller \t est_repo'





Étape 2 : Créer un fichier

Maintenant, exécutez la commande ci-dessous pour créer un fichier :

$ toucher Fichier4.txt



Étape 3 : Ajouter un fichier à l'index de staging

Utilisez le ' git ajouter ” pour ajouter le fichier nouvellement généré dans l'index de staging :

$ git ajouter Fichier4.txt

Étape 4 : Valider les modifications

Ensuite, ajoutez toutes les modifications au référentiel de travail en exécutant le ' git commet ' commande:

$ git commet -m 'Fichier4 ajouté'

Étape 5 : Vérifier le journal Git

Ensuite, consultez l'historique du journal Git pour afficher les derniers commits ajoutés :

$ journal git

Dans la sortie ci-dessous, on peut voir que tous les derniers commits ajoutés sont affichés, et le ' TÊTE ” pointe vers le commit récent :

Noter: Pour mieux vérifier la position de pointage actuelle de HEAD, exécutez la commande ' journal git ' avec la commande ' -une ligne ' drapeau:

$ journal git --en ligne

La sortie ci-dessous montre la liste des hachages SHA de validation avec les messages de validation :

Étape 6 : Utilisez la commande git reset –soft

Pour annuler les modifications ajoutées du référentiel Git à l'index de staging, utilisez le ' réinitialisation de git » avec la commande « – doux ', et spécifiez la position HEAD souhaitée où il est nécessaire de déplacer le pointeur :

$ réinitialisation de git --doux TÊTE ~ 1

Étape 7 : Vérifiez le statut de Git

Maintenant, vérifiez la position de retour du HEAD, vérifiez l'état du référentiel Git :

$ statut git

On peut voir que le « git reset-soft ” La commande a renvoyé les modifications de validation à l'index de staging Git. De plus, le « Fichier4.txt ' Le fichier est maintenant dans l'index de staging Git et doit être validé :

Étape 8 : Vérifier le journal Git

Pour afficher la position actuelle de HEAD, exécutez la commande donnée avec le ' -une ligne ' option:

$ journal git --en ligne

Ici, la TÊTE pointe vers le ' Fichier3 ' s'engager:

Étape 9 : Utilisez git reset — commande mixte

Pour annuler les modifications validées et supprimer les fichiers de la zone de préparation sans les supprimer du répertoire de travail, exécutez le ' $ git reset –mixte ” avec la position HEAD requise du commit :

$ réinitialisation de git --mixte TÊTE ~ 1

Étape 10 : Vérifiez le statut de Git

Affichez les modifications récemment ajoutées en vérifiant l'état du dépôt Git :

$ statut git

On peut observer que les modifications de validation spécifiées sont supprimées de la zone de staging. Cependant, ils sont placés dans la zone de travail :

Étape 11 : Vérifier le journal Git

Vérifiez l'historique du journal de référence du référentiel Git avec le hachage SHA :

$ journal git --en ligne

Étape 12 : Utiliser git reset — commande hard

Pour supprimer les modifications ajoutées du répertoire de travail local Git, exécutez le ' $ git reset-difficile ' commande:

$ réinitialisation de git --difficile TÊTE ~ 1

Étape 13 : Vérifier le pointeur HEAD inversé

Pour vérifier le pointeur HEAD, revenez à la position spécifiée, exécutez le ' journal git ' commande:

$ journal git --en ligne

La sortie ci-dessous montre que la TÊTE pointe vers le ' Fichier1 ajouté ' s'engager:

Étape 14 : Vérifiez le statut de Git

Pour afficher les modifications ajoutées, vérifiez l'état de Git :

$ statut git

On peut voir que nous n'avons pas de piste et de changements en attente de ' Fichier2.txt ' dossier. Par conséquent, File2.txt a été complètement supprimé :

Étape 15 : vérifier la liste du contenu du référentiel

Pour vérifier la liste de contenu du référentiel, exécutez le ' ls ' commande:

$ ls

Comme vous pouvez le voir, le ' Fichier2.txt ” le fichier n'existe pas dans le répertoire courant :

Nous avons expliqué la différence entre les options git reset –mixed, –soft et –hard.

Conclusion

Le ' réinitialisation de git ” est utilisée pour réinitialiser les modifications, modifier l'historique du référentiel Git et corriger les erreurs. Le ' git reset-soft ” La commande conserve les fichiers et renvoie les modifications de validation dans la zone de staging Git. En revanche, le « git reset -mixte ” annule les modifications de validation et supprime le fichier de l'index de staging sans le supprimer du répertoire de travail. Pour supprimer toutes les modifications et les supprimer de la zone de travail Git, le ' git reset - dur » peut être utilisée. Cet article illustre la différence entre git reset –mixed, –soft et –hard.