GitVoici le seizième volet de la formation Git. Dans mon précédent article, nous avons vu la suppression de fichiers à l’aide de la commande git rm. Aujourd’hui nous allons aborder le renommage de fichiers, qui obéit aux mêmes principes de base que la suppression.

AstuceSous Unix et sous Linux, la commande mv sert à déplacer aussi bien qu’à renommer des fichiers. Si vous n’êtes pas très à l’aise avec ce concept, je vous invite à jeter un œil à cet atelier pratique sur la copie, le déplacement et le renommage des fichiers dans le shell.

Renommer un fichier avec Git

Continuez allègrement à vous servir des fichiers de l’atelier pratique formation-git/atelier-18. Effectuez une nouvelle copie de ce dépôt Git pour vous entraîner dessus :

$ cd ~/formation-git/
$ cp -R atelier-18/ atelier-23
$ cd atelier-23/

Rappelez-vous ce qu’il contient :

$ ls
Cartes.md  Entretien.md  Roadtrip.md

À ce stade, je me rends compte que j’ai peut-être mal nommé mon fichier Entretien.md. Réflexion faite, je me demande si je ne vais pas plutôt l’appeler Maintenance.md :

$ git mv Entretien.md Maintenance.md

Voyons l’effet de cette opération sur mon dépôt :

$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        renamed:    Entretien.md -> Maintenance.md

Ici, j’ai le choix :

  • Soit je valide le renommage du fichier Entretien.md en Maintenance.md avec un message approprié.
  • Soit j’annule l’opération de renommage à coups de git restore.

Je décide de valider le renommage :

$ git commit -m "Renommage du fichier."
[master 748c744] Renommage du fichier.
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename Entretien.md => Maintenance.md (100%)

Une remarque sur ce que je viens de faire :

  • Tout comme la commande git rm, la commande git mv gère uniquement les fichiers suivis. Si jamais je crée un fichier dans mon répertoire de travail et que je décide de le renommer avant même de l’ajouter à l’index, j’utiliserai la simple commande Linux mv pour cette opération.

Maintenant, que se passe-t-il si j’utilise la simple commande mv au lieu de git mv pour renommer un fichier suivi par Git ? Admettons que je me ravise et que je me dise que réflexion faite, Entretien.md c’était quand-même mieux. Mais dans l’effervescence de l’indécision, je vais un peu trop vite et j’utilise mv au lieu de git mv :

$ ls
Cartes.md  Maintenance.md  Roadtrip.md
$ mv Maintenance.md Entretien.md

J’affiche l’état de mon dépôt, et je m’aperçois que c’est un peu la pagaille :

$ git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    Maintenance.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        Entretien.md

no changes added to commit (use "git add" and/or "git commit -a")

Git m’annonce deux choses ici :

  • Le fichier Maintenance.md a été supprimé.
  • Un nouveau fichier non suivi Entretien.md a fait son apparition dans le répertoire de travail.

Est-ce que je pourrais éventuellement rectifier le tir avec un coup de git add --update comme je l’avais fait lorsque j’ai utilisé rm au lieu de git rm ? Essayons :

$ git add --update
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        deleted:    Maintenance.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        Entretien.md

J’ai un succès partiel dans la mesure où la « disparition » du fichier Maintenance.md est bien prise en compte par l’index. En revanche, je me retrouve toujours avec un fichier Entretien.md qui n’est pas suivi par Git. Je l’ajoute donc explicitement à l’index :

$ git add Entretien.md
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        renamed: Maintenance.md -> Entretien.md

Ça y est ! Cette fois-ci l’index m’annonce bien une opération de renommage. Mais il m’a fallu sauter à travers des cerceaux en feu pour en arriver là, et j’en conclus qu’il vaut mieux utiliser git mv d’emblée pour une opération de renommage ou de déplacement.

Il ne me reste plus qu’à valider l’opération :

$ git commit -m "Finalement le nom initial était OK."
[master 675c172] Finalement le nom initial était OK.
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename Maintenance.md => Entretien.md (100%)

Exercice

  • Effectuez une copie du dépôt Git atelier-18 et nommez-la atelier-24.
  • Inspectez sommairement le contenu, l’état et l’historique du dépôt.
  • Renommez le fichier Roadtrip.md en Voyage.md et validez cette opération avec un message approprié.
  • Renommez le fichier Cartes.md en Cartes-Michelin.md en utilisant mv au lieu de git mv.
  • Inspectez l’état de votre dépôt et faites le nécessaire pour que le renommage soit pris en compte dans l’index.
  • Validez le renommage avec un message approprié.

Lire la suite : Renommer des branches


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 

Catégories : Formation

0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *