Git n'est pas sensible à la casse?

dans le premier engagement de mon partiel appelé _Electronics il a été écrit en commençant par une majuscule, puis je l'ai changé en _electronics .

Git sous cygwin ignoré le cas après la validation d'un nom nouveau, j'ai donc changé le nom de la main à la cible des pensions.

Maintenant, il modifie parfois la engagés _electronics partielle _Electronics .

Qu'ai-je fait de mal?

78
demandé sur nowox 2011-12-13 02:00:25

4 réponses

il sera considéré comme 2 choses différentes, mais vous causera des problèmes sur un système non sensible à la casse. Si c'est le cas, assurez-vous que vous remplissez tous les chemins ou noms de fichier. En outre, pour changer le nom de quelque chose dans juste le cas, faites ceci:

mv file.txt temp.txt
git add -A
git commit -m "renaming..."
mv temp.txt File.txt
git add -A
git commit --amend -m "Renamed file.txt to File.txt"

c'est une façon explicite de faire des changements en les commettant, puis en les faisant s'effondrer. Une façon plus courte de le faire est de manipuler l'index et le dossier de travail tout en un:

git mv file.txt temp.txt
git mv temp.txt File.txt
git commit -m "Renamed file.txt to File.txt"

ceci est lié à l'ajustement des noms de répertoire aussi bien: git mv et seulement le cas de changement de répertoire

65
répondu Adam Dymitruk 2017-05-23 12:17:57

cela va dépendre de la valeur de configuration core.ignorecase , qui est définie à false dans les systèmes de fichiers sensibles à la casse et true dans msysgit sur Windows.

de base.ignorécase

si elle est vraie, cette option permet différentes solutions de rechange pour permettre à git de mieux fonctionner sur des systèmes de fichiers qui ne sont pas sensibles à la casse, comme FAT. Pour exemple, si une liste de répertoires trouve "makefile" alors que git attend "Makefile", git va supposer qu'il est vraiment le même fichier, et de continuer pour s'en souvenir comme "Makefile".

La valeur par défaut est false, sauf git-clone(1) ou git-init(1) de la sonde et de l'ensemble de base.ignorecase vrai si approprié lorsque le référentiel est créé.

92
répondu manojlds 2011-12-12 22:46:37

C'est beaucoup plus facile:

git mv Electronics electronics -f
git commit -m "That was easy!"
21
répondu Arnoud 2014-02-12 16:17:11
git config --system core.ignorecase false
19
répondu Cemo 2014-07-07 11:52:27