web-dev-qa-db-fra.com

Sensibilité à la casse dans Git

J'ai rencontré un problème avec git. En gros, je mets à faux core.ignorecase parce que je voulais changer la casse des noms de certains dossiers (puisque je suis sous OSX avec un système de fichiers insensible à la casse, les changements n'étaient pas affichés autrement). Lorsque j'ai extrait mes données, j'ai remarqué que maintenant chaque dossier renommé apparaît deux fois dans le référentiel, avec l'ancien et le nouveau nom. Je ne sais pas quoi faire pour supprimer les anciens dossiers car ils n'apparaissent pas localement (j'ai essayé de définir core.ignorecase à nouveau, mais cela n'aide pas).

78
entropid

Une solution de contournement similaire à ce commentaire dans un problème msysgit (pour un autre système d'exploitation insensible à la casse: Windows) pourrait-elle aider?

J'ai rencontré ce même problème. Refactorisation d'un nom de package dans Eclipse et le basculement vers une version précédente s'est interrompu car le nom du dossier ne revenait pas. J'utilise Windows 7, Git 1.7.0.2.msysgit.0

Mon dossier a été renommé dans Windows en "folder" mais a été affiché comme "Folder" dans Git.
J'ai résolu le problème en le renommant "Folder" dans Windows, puis en exécutant:

git mv "Folder" "Folder2"
git mv "Folder2" "folder"

Notez que depuis git 2.0.1 (juin 2014), git mv Folder folder devrait simplement fonctionner!

Voir " Git: Modification de la capitalisation des noms de fichiers "

119
VonC

Vous pouvez créer une image disque (de préférence une image disque sparsebundle) avec un système de fichiers sensible à la casse et y extraire votre référentiel git.

La capture d'écran de l'Utilitaire de disque ci-dessous montre comment créer une image disque sensible à la casse.

Disk Utility Settings

17
adib

Utilisez la commande suivante sur macOS. Cela changera votre configuration git pour qu'elle soit sensible à la casse sur les noms de fichiers.

git config core.ignorecase false

Vous pouvez définir cela globalement en modifiant ~/.gitconfig et en le définissant sous core tel que:

[core]
    ignoreCase = false
14
Brandon Yang

Par défaut, Mac OS X est "insensible à la casse mais préservant la casse". Cette distinction est importante.

Je vous suggère de créer une autre image disque et de la formater spécifiquement comme "HFS sensible à la casse".

11
Arafangion
git mv "Folder" "Folder2"
git mv "Folder2" "folder"
git commit -a -m "my message"
5
Mohamed EL HABIB

Il y a un fil de discussion récent sur les problèmes de respect de la casse sur le forum de discussion [email protected] intitulé Bug? Git checkout échoue avec un mauvais message d'erreur qui met en évidence les problèmes et les choses à essayer de sensibilité à la casse entre différentes plates-formes.

1
Philip Oakley