GIT - 14 Renommer et supprimer des fichiers

Dans cette leçon, nous allons renommer et supprimer des fichiers en utilisant directement les commandes Git, plutôt que les commandes shell classiques (mv et rm). L'avantage : Git suit automatiquement le changement et l'enregistre dans l'historique avec un haut niveau de confiance. Je suis dans le repository test, sur la branche master, avec un working directory propre.

Renommer un fichier avec git mv

Créons d'abord un fichier jupiter.html avec un peu de contenu et committons-le :

touch jupiter.html
git add jupiter.html
git commit -m "ajout jupiter"

Maintenant, supposons qu'on veuille le renommer en pluton.html. Plutôt que d'utiliser mv au niveau OS, on utilise :

git mv jupiter.html pluton.html
git status

Git affiche la modification comme un renommage de jupiter.html vers pluton.html, en attente de commit. Un ls confirme que le fichier a aussi été renommé sur le système de fichiers. Lors du git commit, Git note le rename à 100% — c'est le niveau de confiance qui indique qu'il s'agit exactement du même fichier (si on avait apporté des modifications en plus, ce niveau serait inférieur).

Supprimer un fichier avec git rm

Si finalement on ne veut plus de ce fichier, on utilise git rm pour bénéficier du suivi automatique de la suppression :

git rm pluton.html
git status
git commit -m "suppression pluton"
  • git mv <old> <new> : renomme/déplace un fichier et trace l'opération
  • git rm <fichier> : supprime un fichier et trace la suppression
  • Avantage : pas besoin de git add séparé, le changement est déjà mis en stage

Après le commit, un git status confirme qu'on est de retour dans un working directory propre. Ces deux commandes sont préférables à mv et rm classiques dès lors que vous travaillez sur des fichiers suivis par Git.

En résumé

Cette leçon explique comment renommer et supprimer des fichiers dans Git de manière efficace. Vous découvrirez les commandes `git mv` pour renommer ou déplacer des fichiers, et `git rm` pour les supprimer, avec les avantages qu'elles offrent par rapport aux opérations directes sur le système de fichiers.

Points clés

  • Utiliser `git mv ancien-nom nouveau-nom` pour renommer un fichier en gardant l'historique Git intégré
  • La confiance de Git (100%) indique que le fichier renommé est reconnu comme le même que l'original
  • Utiliser `git rm nom-du-fichier` pour supprimer un fichier en le mettant en staging automatiquement
  • Les changements de renommage et de suppression restent en attente jusqu'à un `git commit` effectif
  • Les commandes Git `mv` et `rm` offrent des avantages supplémentaires par rapport aux opérations système classiques en maintenant la traçabilité
  • Après suppression avec `git rm`, le fichier disparaît du système de fichiers et le changement doit être validé par un commit

Questions fréquentes

Quelle est la différence entre renommer un fichier manuellement et utiliser `git mv` ?

Utiliser `git mv` place automatiquement le changement en staging et Git reconnaît le fichier comme le même, préservant l'historique complet. Un renommage manuel nécessiterait plusieurs étapes supplémentaires pour être correctement suivi par Git.

Comment suis-je sûr que Git a bien reconnu mon fichier renommé ?

Git affiche un niveau de confiance avec le pourcentage. Un score de 100 % indique que Git pense qu'il s'agit exactement du même fichier. Si vous aviez modifié le fichier avant de le renommer, ce score serait inférieur.

Le changement est-il immédiat quand j'exécute `git rm` ?

Non, le fichier est marqué pour suppression dans le staging mais le changement n'est effectif dans le suivi Git qu'après un `git commit`. Entre temps, l'état du dépôt affiche la suppression en attente.