2012-11-20 1 views
8

J'ai essayé de faire une recherche pour mon issue et la chose la plus proche que je pourrais est ceci.L'état de Git montre le dossier deux fois mais le cas différent

git Status Shows Same File Twice - But with different path slash styles

Mais il ne semble pas être la même question que j'ai.

Je faisais un commit et j'ai remarqué que le même fichier était listé deux fois mais avec des cas différents. Par exemple, Directory/resource.h et Directory/Resource.h. Maintenant, il n'y a qu'un seul fichier dans le répertoire resource.h. Si je regarde le fichier via Git Extensions, ils ont exactement la même apparence. Il ne semble pas y avoir un autre fichier caché, il n'y a qu'un seul fichier.

J'ai donc essayé de résoudre ce problème en supprimant le fichier resource.h, en validant, puis en ajoutant le fichier et en le réengageant à nouveau. Un seul fichier est apparu comme ajouté. J'ai pensé que j'ai corrigé le problème, mais maintenant si j'essaye de commander une branche différente j'obtiens l'erreur suivante.

error: The following untracked working tree files would be overwritten by checkout: 
    Directory/Resource.h 
Please move or remove them before you can switch branches. 
Aborting 
Done 

Je n'ai pas vraiment aucune idée de ce qu'il faut faire d'ici, je ne l'ai été en utilisant Git pendant quelques mois et je ne l'ai pas eu à faire quoi que ce soit plus compliqué que la fusion des branches et en poussant et en tirant .

+0

connexes: [changer Git cas d'un fichier sous Windows] (http://stackoverflow.com/questions/1793735/git-change-case-of-a-file-on-windows), [Comment faire Git ignorer les changements dans le cas?] (http://stackoverflow.com/questions/52950/how-to-make-git-ignore-changes-in-case) – hammar

Répondre

15

Cela peut arriver dans Windows si vous avez un repo avec ignorecase = false et renommer un fichier sans utiliser git. Pour corriger, cela devrait fonctionner

git mv -f Resource.h resource.h 
git commit -m 'fix case' 

et cela devrait l'empêcher de se reproduire.

git config core.ignorecase true 
Questions connexes