git mv
Déplacer ou renommer un fichier
La commande 'git mv' renomme ou déplace un fichier suivi et prépare le changement en une étape. C’est la même chose que renommer le fichier vous-même puis lancer git add sur l’ancien et le nouveau nom. Git ne stocke pas les renommages : il les détecte en comparant le contenu, donc git log --follow peut toujours montrer l’historique du fichier à travers le renommage.
Synopsis
git mv [-v] [-f] [-n] [-k] <source> <destination>Exemples
Renommer un fichier
git mv app.js cart.jsRenomme le fichier et prépare le renommage.
Déplacer dans un dossier
git mv cart.js src/cart.jsDéplace le fichier dans un dossier existant.
Historique après un renommage
git log --follow cart.jsSuit l’historique en remontant au-delà du renommage.
Exemples de workflows
git mv app.js cart.jsRenommer et préparer
git statusAffiche "renamed: app.js -> cart.js"
git commit -m "Rename app.js to cart.js"Commit
Dépannage
fatal: destination exists
Cause : Un fichier portant le nouveau nom existe déjà
Choisissez un autre nom, ou utilisez -f pour l’écraser
fatal: not under version control
Cause : Le fichier source n’est pas suivi
Renommez-le normalement, ou faites d’abord git add
Astuces et pièges
Bonnes pratiques
- ✓Committez un renommage séparément des grosses modifications, pour que Git le reconnaisse comme un renommage.
- ✓Utilisez git log --follow <file> pour voir l’historique à travers les renommages.
Erreurs fréquentes
- ✗Renommer dans l’explorateur de fichiers et ne committer que le nouveau fichier — l’ancien est toujours suivi.
- ✗Changer seulement la casse sous Windows ou macOS sans git mv, ce que Git peut ne pas remarquer.
- ✗Renommer et beaucoup modifier un fichier dans le même commit, si bien que Git ne détecte plus le renommage.
FAQ
Pas directement : il compare le contenu entre les commits et détecte le renommage.
Oui : git mv src lib renomme le dossier et tous ses fichiers.