Résoudre les problèmes de casse avec les noms de fichiers sous Git

Vous avez passé le nom d'un fichier en minuscule (ou inversement) et git ne le détecte pas ? Voici la solution !

Résoudre les problèmes de casse avec les noms de fichiers sous Git

Windows et MacOS sont des systèmes d'exploitation que l'on qualifie d'insensibles à la casse (case-insensitive), ce qui signifie que les noms des fichiers et des dossiers sont traités de la même manière qu'ils soient écrits en majuscule ou en minuscule.

À noter que ce n'est pas parce que l'OS est insensible à la casse que les logiciels qui tournent dessus le sont eux aussi.

D'ordinaire cette particularité est censée faciliter la vie des utilisateurs, qui n'ont pas à se soucier de ce détails, mais lorsque vous utilisez certains outils comme Git, cela peut vous poser des problèmes.

Imaginons que vous ayez renommé un fichier LOGO.jpg en logo.jpg et que vous ayez changé le chemin du fichier dans votre application, quelle qu'elle soit, alors tout ira pour le mieux, jusqu'à ce que vous vouliez versionner vos changements.

Si jamais le renommage du fichier était la seule opération effectuée, au moment du commit git vous renverrai le message "nothing to commit".

En effet, Git va bien prendre en compte les changements à l'intérieur de vos fichiers, mais il ne va pas détecter le changement de casse dans le nom de votre fichier logo.jpg

Votre version en local fonctionnera correctement, mais si quelqu'un d'autre récupère votre version, le chemin contenu dans votre application et le chemin réel du fichier ne seront pas les mêmes (casse différente).

Donc la question est : Comment faire pour que Git détecte le changement de casse dans le nom de mon fichier ?

La solution est très simple, et tient en une seule ligne de commande :


$ git mv LOGO.jpg logo.jpg 

La commande git mv permet de déplacer ou renommer un fichier.

De cette manière on annonce explicitement au gestionnaire de version que le fichier a été renommé, il détectera donc la modification et cette dernière pourra être ajoutée au prochaine commit !

J'espère que cet article vous aura été utile, et à bientôt sur le blog !


À propos de l'auteur

Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage de d'expériences et de connaissances.

Aujourd'hui je suis aussi coach pour développeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter pour ne jamais louper le meilleur article de la semaine et être tenu au courant de mes projets !


Photo par LSE Library sur Unsplash