Comment faire en sorte que git ignore les changements au cas où?

106

Je ne suis pas trop sûr de ce qui se passe ici, mais parfois un fichier particulier dans mon référentiel changera la casse de son nom. par exemple,:

avant: File.h

après: file.h

Je ne me soucie pas vraiment de savoir pourquoi cela se produit, mais cela fait penser à git que c'est un nouveau fichier, et ensuite je dois changer le nom du fichier. Pouvez-vous simplement faire ignorer les changements de casse à git?

[modifier] Je soupçonne que Visual Studio fait quelque chose de bizarre avec ce fichier particulier, car cela semble arriver le plus souvent lorsque je l'ouvre et l'enregistre après des modifications. Cependant, je n'ai aucun moyen de corriger les bogues dans VS, mais git devrait être un peu plus capable, j'espère.

1800 INFORMATIONS
la source
1
Re: Visual Studio enregistre les fichiers en minuscules Quelle version de Visual Studio utilisez-vous? La dernière fois que j'ai vérifié, cela semblait être mieux dans la version 2008. En 2005, le bogue semblait se produire lorsque les fichiers étaient ouverts via le débogueur au lieu de l'explorateur de solutions.
Adam Mitz
En fait, oui, c'est 2005. Aucune chance de mise à niveau pendant un certain temps.
1800 INFORMATION

Réponses:

178

Depuis la version 1.5.6, une ignorecaseoption est disponible dans la [core]section de.git/config

par exemple ajouter ignorecase = true

Pour le changer pour un seul dépôt, à partir de ce dossier, exécutez:

git config core.ignorecase true

Pour le changer globalement:

git config --global core.ignorecase true
MarkB
la source
21
git config core.ignorecase true ou git config --global core.ignorecase true pour appliquer globalement.
Aaron Jensen
@graywh: Il est documenté dans git-config sous core.ignorecase ( kernel.org/pub/software/scm/git/docs/git-config.html )
Ben Lings
4
Merci, j'ai enfin trouvé pourquoi git ne prenait pas en compte les changements de cas. ignorecase = falsea fait l'affaire, il a été réglé par défaut sur true-_-
Alex C
15

Vous pouvez forcer git à renommer le fichier dans un cas uniquement avec cette commande:

git mv --cached name.txt NAME.TXT

Notez que cela ne change pas la casse du fichier dans votre copie extraite sur une partition Windows, mais git enregistre le changement de casse et vous pouvez valider ce changement. Les futures caisses utiliseront le nouveau boîtier.

Andrew Arnott
la source
1
"erreur: option inconnue" mise en cache "." Ce n'est pas non plus répertorié dans la documentation: git-scm.com/docs/git-mv
Alex
12

Dans la version 1.6.1.9 de git pour Windows, j'ai trouvé que "ignorecase = true 'dans config était déjà défini par défaut.

Jean C
la source
7
Oui, et lorsque vous travaillez avec des fichiers Java, vous voulez que ce paramètre soit défini sur false, sinon vous pourriez avoir des problèmes lors de ce refactoring (la classe HTMLParser devenant HtmlParser ou l'inverse).
PhiLho
idem pour git version 2.10.1.windows.1
Kars Barendrecht
3
Je sais que c'est vieux, mais il est insensé sur Windows de définir ignorecase sur false car Windows est un système d'exploitation insensible à la casse. Cela s'applique que vous travailliez avec Java ou (gasp!) C # ou autre chose.
ingyhere
5

La situation décrite dans la question se reproduit maintenant avec Mac OS X, version git> = 1.7.4 (je pense). Le remède est de définir votre ignorecase = false et de renommer les fichiers en minuscules (que git a changé de cette façon, pas Visual Studio) à leur UsualCase à la main (c'est-à-dire «mv myname MyName»).

Plus d'infos ici .

Akauppi
la source