Comment faire git d'ignorer les changements dans les cas?
Question
Je ne sais pas trop ce qui se passe ici, mais parfois d'un fichier particulier dans mon référentiel va changer le cas de le nom.par exemple,:
avant: File.h
après: file.h
Je ne me soucie pas vraiment pourquoi ce qui se passe, mais cela provoque git pense que c'est un nouveau fichier, et ensuite je dois aller changer le nom du fichier dos.Pouvez-vous faire juste à git d'ignorer les changements de casse?
[modifier] Je soupçonne que c'est Visual Studio, quelque chose de bizarre avec ce fichier en particulier, parce qu'il semble se produire plus souvent lorsque je ouvrir et enregistrer après les modifications.Je n'ai pas de moyen de corriger les bugs VS, cependant, mais git doit être un peu plus capable, je l'espère.
La solution
Depuis la version 1.5.6 il y a un ignorecase
option disponible dans le [core]
la section de .git/config
par exempleajouter ignorecase = true
Changer pour juste un repo, à partir de ce dossier, exécutez:
git config core.ignorecase true
Pour modifier l'échelle mondiale:
git config --global core.ignorecase true
Autres conseils
Dans la version git 1.6.1.9 pour windows, j'ai trouvé que "ignorecase=true' dans la configuration a déjà été définie par défaut.
Vous pouvez forcer git pour renommer le fichier dans une affaire uniquement avec cette commande:
git mv --cached name.txt NAME.TXT
Remarque cela ne change pas le cas du fichier dans vos bagages de la copie sur une partition Windows, mais git enregistre le boîtier de changer et vous pouvez valider ce changement.Les futurs départs vont utiliser la nouvelle enveloppe.
La situation décrite dans la question est maintenant de nouveau produit avec Mac OS X, version git >= 1.7.4 (je pense).La cure est à définir votre ignorecase=false et renommez le en lowercase fichiers (git changé de cette façon, pas de Visual Studio) à leur UsualCase à la main (c'est à dire'mv myname MyName).
Plus d'infos ici.