web-dev-qa-db-fra.com

Je change la capitalisation d'un répertoire et Git ne semble pas le comprendre

Je développe un projet sous OS X Lion sous contrôle de version Git. J'avais ces annuaires en minuscules, puis plus tard, ils étaient en majuscules (par exemple, emailaddresses => EmailAddresses), mais Git ne semble pas reconnaître le changement. Il pense toujours que les répertoires sont en minuscule lorsque je lance git ls-files et d’autres commandes.

Est-ce inoffensif ou devrais-je faire autre chose pour que Git comprenne ce changement?

86
dan

Vous utilisez probablement HFS + sans la casse (mais en préservant la casse). Je travaille habituellement autour de ceci comme ceci:

$ git mv somename tmpname
$ git mv tmpname SomeName
130
Paul R

Vous pouvez dire à git de prendre en compte le cas en lançant

git config core.ignorecase false

135
Taran

Comment faire pour mit sur Mac cas-Sensitively

Cela se produit parce que Mac OS X implémente des fonctionnalités de préservation de la casse et d'insensibilité à la casse destinées à vous aider.

Bien que les suggestions de changement de nom renommé dans l'autre réponse fonctionnent, je recommande l'utilisation de '--force' pour un résultat de meilleure pratique:

$ git mv --force somename SomeName


Note: si vous essayez sans l'option force, git vous le fera comme ceci:

$ git mv somename SomeName
$ fatal: destination exists, source=somename, destination=SomeName

Dans l'exemple ci-dessus, la commande git échoue et aucun fichier n'est modifié dans le système de fichiers ou dans l'index de git.

28
David Manpearl

Essayez de changer l’option core.ignorecase de git config en false dans votre fichier .gitconfig.

16
pooamlairaj

Si vous faites git mv AAA aaa ou git mv -f AAA aaa, cela ne fonctionnera pas et vous obtiendrez l'erreur fatal: renaming 'AAA' failed: Invalid argument.

Parce que AAA et aaa sont ONE SAME dossier/fichier sur des systèmes de fichiers ne respectant pas la casse, déplacez AAA vers aaa signifie déplacer AAA comme aaa/AAA.

Alors tu devrais faire

git mv AAA aaa.1
git mv aaa.1 aaa

J'espère que cela vous sera utile.

0
Gapur Kassym

Aucune de ces solutions n'a fonctionné pour moi. SourceTree créait toujours ma branche avec un cas différent de ce que je voulais. Alors, comment j'ai résolu le problème:

1 - Regardez vos fichiers git sur le Finder. Vous pouvez le faire en tapant ceci sur le terminal:

- `defaults write com.Apple.Finder AppleShowAllFiles TRUE`
- `killall Finder`

2 - Relancez le Finder et allez dans le répertoire de votre projet

3 - Maintenant changez simplement le nom de votre dossier, disons de Fonction en fonction. Et voilà.

0
Bruno Cunha