121 votes

Comment faire pour que git ignore les changements dans le cas ?

Je ne suis pas trop sûr de ce qui se passe ici, mais il arrive qu'un fichier particulier de mon dépôt change la casse de son nom, par exemple :

avant : File.h

después: file.h

Je ne me soucie pas vraiment de la raison pour laquelle cela se produit, mais cela amène git à penser qu'il s'agit d'un nouveau fichier, et ensuite je dois aller changer le nom du fichier à nouveau. Pouvez-vous simplement faire en sorte que git ignore les changements de cas ?

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

1 votes

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 bug semblait se produire lorsque les fichiers étaient ouverts via le débogueur au lieu de l'explorateur de solutions.

0 votes

En fait, oui, nous sommes en 2005. Mais il n'y a aucune chance de mise à jour avant un certain temps.

202voto

MarkB Points 1741

Depuis la version 1.5.6 il y a un ignorecase disponible dans l'option [core] section de .git/config

Par exemple, ajoutez ignorecase = true

Pour le changer pour un seul repo, à partir de ce dossier, exécutez :

git config core.ignorecase true

Pour le changer globalement :

git config --global core.ignorecase true

21 votes

Git config core.ignorecase true ou git config --global core.ignorecase true pour appliquer globalement.

0 votes

@graywh : C'est documenté dans git-config sous core.ignorecase ( kernel.org/pub/software/scm/git/docs/git-config.html )

5 votes

Merci, j'ai enfin trouvé pourquoi git ne prenait pas en compte mes modifications de cas. ignorecase = false a fait l'affaire, elle a été mise par défaut sur true -_-

17voto

Andrew Arnott Points 35346

Vous pouvez forcer git à renommer le fichier en respectant la casse 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 extractions futures utiliseront le nouveau casing.

14voto

John C Points 73

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

8 votes

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 type de refactoring (class HTMLParser devenant HtmlParser ou l'inverse).

0 votes

Même chose pour la version git 2.10.1.Windows.1

4 votes

Je sais que c'est vieux, mais il est absurde sous Windows de mettre ignorecase à false car Windows est un système d'exploitation insensible à la casse. Cela s'applique aussi bien à Java qu'à C# ou à tout autre système.

5voto

akauppi Points 3125

La situation décrite dans la question se reproduit maintenant avec Mac OS X, version de git >= 1.7.4 (je pense). Le remède est de mettre ignorecase=false et de renommer les fichiers en minuscules (que git a modifié de cette façon, pas Visual Studio) à la main (i.e. 'mv myname MyName').

Plus d'informations aquí .

2voto

FoxDeploy Points 5636

Pour forcer git à reconnaître le changement de boîtier d'un fichier, vous pouvez exécuter cette commande.

  1. Changez le boîtier du fichier comme vous le souhaitez
  2. git mv -f mynewapp.sln MyNewApp.sln

La commande précédente semble être dépréciée maintenant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X