Comparaison des commandes revert/reset/restore
| Aspect | git reset | git revert | git restore |
|---|---|---|---|
| Historique | Modifie | Préserve | Ne touche pas |
| Nouveaux commits | Non | Oui | Non |
| Portée | Commits/fichiers | Commits | Fichiers |
| Utilisation principale | Branches locales | Branches partagées | Fichiers de travail |
| Niveau de risque | Elevé | Faible | Moyen |
| Réversibiliité | Difficile | Facile | Variable |
| Cas d’usage typique | Nettoyer l’historique | Annuler commits publiés | Restaurer fichiers |
Exemples d’utilisations courants
| Action souhaitée | Commande recommandée |
|---|---|
| Annuler le dernier commit (local) | git reset HEAD~1 |
| Annuler un commit publié | git revert <commit-hash> |
| Désindexer des modifications | git restore --staged <file> |
| Annuler les modifications d’un fichier | git restore --source=<commit> <file> |
Bonnes Pratiques revert/reset/restore
-
Pour les branches partagées :
-
Utilisez
git revertpour annuler des commits -
Évitez
git resetqui modifie l’historique
-
-
Pour le travail local :
-
git resetpour nettoyer l’historique -
git restorepour gérer les fichiers individuels
-
-
Précautions :
-
Faites des sauvegardes avant d’utiliser
git reset --hard -
Vérifiez toujours avec
git statusavant d’utilisergit restore -
Testez
git restoreavec-stagedavant de perdre des modifications
-
-
Ordre de préférence pour annuler des changements :
-
Modifications non stagées :
git restore -
Modifications stagées :
git restore --staged -
Commits locaux :
git reset -
Commits publiés :
git revert
-