Commandes Linux : git reset

GIT RESET

 

 

Rétablir l’état avant indexation suivant le commit spécifié (mode mixed, par défaut) :

L’historique et la staging area sont écrasés, mais la copie de travail n’est pas touchée. Cela signifie que vos modifications seront en attente dans la copie de travail. C’est le mode par défaut de la commande git reset. Il restera à indexer et commiter les modifications.
Toutes les modifications apportées depuis le commit spécifié sont toujours présentes et en attente d’indexation. Seul l’historique est réinitialisé.
Excellent moyen de réécrire l’historique non pushé sur le dépôt distant sans perdre ses modifications.
Attention, comme pour les 2 autres options (mixed et soft), les commits supprimés de l’historique ne doivent pas avoir été pushés.

$ git reset [--mixed] SHA1

 

Rétablir l’état après indexation suivant le commit spécifié (mode soft) :

L’historique est écrasé pour ressembler à ce qu’il était au commit spécifié, mais la copie de travail et la staging area ne sont pas touchées. Cela signifie que vos modifications ont été indexées et sont en attente dans la staging area. Il restera à commiter les modifications.
Toutes les modifications apportées depuis le commit spécifié sont toujours présentes et indexées. Seul l’historique est réinitialisé.
Excellent moyen de réécrire l’historique non pushé sur le dépôt distant sans perdre ses modifications.
Attention, comme pour les 2 autres options (mixed et soft), les commits supprimés de l’historique ne doivent pas avoir été pushés.

$ git reset --soft SHA1

 

Rétablir la copie de travail d’un hash antérieur (mode hard, destructif) :

Tous les commits plus récents que le hash spécifié seront supprimés de l’historique et la copie de travail sera identique à celle du commit spécifié. Tous les fichiers ajoutés et toutes les modifications depuis le commit spécifié seront supprimés.
Attention, comme pour les 2 autres options (mixed et soft), les commits supprimés de l’historique ne doivent pas avoir été pushés.

$ git reset --hard SHA1

Rmq :
Pour les branches distantes, et donc les commits pushés, voir la commande suivante :
git push --force remotename SHA1:branchname
 

Annuler des modifications indexées :

Les fichiers modifiés ont ici déjà été indexés avec git add.
Dans le cas d’un fichier unique :

$ git reset HEAD filename
$ git checkout -- filename

Ou, si plusieurs fichiers ont été modifiés dans l’espace de travail :

$ git reset HEAD .
$ git checkout -- .

 

Fermer le menu
%d blogueurs aiment cette page :