Vous pouvez essayer:
"git mv -f foo.txt Foo.txt"
- pour définir
ignorecase
à false dans le fichier de configuration.
Mais la question de cas (sur Windows par exemple) est décrit dans le msysgit question 228
il y a toujours une option pour mettre la ignorecase
à false dans le fichier de config qui va les obliger à Unix comme Git sémantique sur le dessus de NTFS.
Git prend en charge ce problème, mais ce n'est pas la valeur par défaut - NTFS point de vue a.txt
et A.txt
sont de la même chose - donc Git essaie de préserver ce que la plupart des utilisateurs devraient s'attendre
Comme une meilleure solution de contournement, vous pouvez
git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt
qui modifie également le cas du fichier stocké sur le disque.
Ce blog illustre le même problème sur MacOs pendant un rebase:
La valeur par défaut sur Mac OS X systèmes de fichiers, c'est qu'ils sont insensibles à la casse. FFFFFF.gif
est le même que ffffff.gif
.
Si vous supprimez le fichier en question, à partir du système de fichiers, pas du Git index, vous l'esprit, vous pouvez fusionner la branche en question, et de restaurer le fichier comme si de rien n'était.
Les étapes sont assez simples:
$ rm file/in/question.gif
$ git merge trunk
De toute façon, rappelez-vous ce que git mv est synonyme de:
mv oldname newname
git add newname
git rm oldname
, donc si newname
et oldname
clash, vous devez vous rendre différent (même si c'est seulement pour une courte période de temps), d'où l' git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt