En tant que logiciel de contrôle de version, Git facilite de manière prévisible l'annulation des modifications. Mais même le concept d'annulation d'un changement est plus compliqué que vous ne le pensez au premier abord. Un référentiel Git n'est pas tout à fait la même chose que l'ensemble de fichiers sur lesquels vous travaillez localement. Annuler les modifications signifie considérer exactement où vous voulez les annuler.
idiotvérifier, git réinitialiser, et idiotrestaurer sont des commandes qui peuvent vous aider à revenir à une version précédente non seulement de votre base de code, mais aussi de fichiers individuels. Apprenez à connaître les détails de ces commandes et vous naviguerez dans l'historique de vos fichiers comme un expert en un rien de temps.
Que signifie la réinitialisation d'un fichier, de toute façon ?
Il est important de noter que la réinitialisation d'un fichier peut signifier différentes choses pour différentes personnes dans différentes circonstances. Également git réinitialiser
La commande peut ne pas correspondre à vos attentes quant à la signification de la réinitialisation.Parfois, vous souhaiterez annuler les modifications locales afin qu'un fichier soit de nouveau synchronisé avec le référentiel actuel. À d'autres occasions, vous souhaiterez peut-être annuler les modifications que vous avez déjà validées dans le référentiel.
Les termes suivants sont essentiels pour comprendre la différence: arbre de travail, zone de transit et référentiel. Les fichiers que vous éditez localement appartiennent à l'arbre de travail. Les fichiers que vous validez finissent par se retrouver dans le référentiel. Lorsque vous êtes en train de collecter des modifications, vous transférez des fichiers. Un fichier peut avoir un contenu différent dans chacun de ces emplacements.
Voir également: Tutoriel Git avancé
Vous pouvez penser à réinitialiser un fichier comme à annuler des modifications. Mais l'état de votre fichier déterminera les modifications que vous annulez réellement. Le cas évident est lorsque vous apportez des modifications, les validez, puis décidez plus tard que vous n'en voulez plus.
Un autre cas pourrait être que vous ayez mis en scène un fichier et que vous souhaitiez maintenant le désinstaller.
Comment puis-je restaurer un fichier précédemment validé ?
Intéressons-nous à un cas plus facile à comprendre: vous avez validé un fichier et vous souhaitez maintenant annuler les modifications apportées.
La commande Git pour ce faire est, de manière peu intuitive, nommée vérifier. Vous avez peut-être utilisé vérifier avant de changer de branche, mais c'est une petite partie de ce que la commande peut faire. Il vous permet également de mettre à jour les fichiers de votre arborescence de travail pour qu'ils correspondent à ceux à tout moment dans l'historique du référentiel. Vous pouvez le faire pour une balise, une branche ou même un commit particulier.
La forme la plus utile et la plus générale de cette commande est :
git checkout [ID de validation] -- chemin/vers/fichier
Ici, nous passons par un chemin spécifique (chemin/vers/fichier) qui n'identifie qu'un seul fichier. Nous spécifions également un ID de validation pour obtenir le fichier tel qu'il existait à cette validation spécifique. Cette commande mettra à jour le fichier dans notre arbre de travail uniquement.
Notez que l'extraction d'une version antérieure du fichier modifie la copie de travail, sans la valider ni même la transférer. Pour terminer complètement l'annulation dans le référentiel, vous devrez préparer le fichier et créer un nouveau commit.
Voir également: Comment inspecter l'historique d'un projet avec git log
Comment puis-je changer ce que je mets en scène ?
L'autre type d'annulation concerne votre zone de transit. Celui-ci contient les modifications que vous validerez à côté du référentiel. Si vous avez mis en place une version d'un fichier et décidez plus tard que vous ne voulez pas l'inclure dans le prochain commit, vous voudrez d'abord le désinstaller.
Vous pouvez utiliser le git réinitialiser commande pour désinstaller un fichier intermédiaire :
git reset HEAD chemin/vers/fichier
Puis-je annuler rapidement les modifications locales ?
Oui, vous pouvez annuler les modifications apportées à un fichier local avant qu'il ne soit transféré. Utilisez la commande suivante :
git checkout -- chemin/vers/fichier
Notez que cela est similaire à l'annulation d'une modification de référentiel, cela omet simplement l'ID de validation. Une fois cette commande exécutée, Git annulera toutes les modifications apportées à votre copie de travail.
Qu'en est-il de la restauration git ?
Les versions ultérieures de Git ont une commande plus récente: restaurer. Pour les cas simples dont nous avons discuté ici, vous pouvez utiliser les équivalents suivants. Pour annuler une modification apportée au référentiel :
git restore --source [commit id] chemin/vers/fichier
Pour désinstaller un fichier, utilisez :
git restore --staged chemin/vers/fichier
Et pour annuler les modifications apportées à la copie de travail :
git restore chemin/vers/fichier
Maîtriser la puissance de gestion des versions de Git est inestimable
Bien que la réinitialisation d'un fichier puisse sembler une chose courante, vous constaterez que cela se produit assez rarement dans la pratique. Il est plus probable que vous annuliez des commits entiers plutôt que des fichiers individuels. Cependant, dans les occasions où vous en avez besoin, Git le rend au moins assez simple.
Utilisez ces commandes Git pour effectuer des opérations telles que la suppression d'un fichier d'un commit.
Lire la suite
- La programmation
- GitHub
- Développement web
- La programmation
Bobby est un passionné de technologie qui a travaillé comme développeur de logiciels pendant près de deux décennies. Il est passionné par les jeux, travaillant comme rédacteur en chef chez Switch Player Magazine, et est immergé dans tous les aspects de la publication en ligne et du développement Web.
Abonnez-vous à notre newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !
Cliquez ici pour vous abonner