Je développe un projet sur OS X Lion qui est sous contrôle de version Git. J'avais ces répertoires en minuscules et je les ai ensuite mis en majuscule (par exemple, emailaddresses => EmailAddresses), mais Git ne semble pas reconnaître le changement. Il pense toujours que les répertoires sont en minuscules lorsque je lance git ls-files
et d'autres commandes.
Est-ce inoffensif ou dois-je faire autre chose pour que Git prenne en compte ce changement?
Réponses:
Vous utilisez probablement HFS + insensible à la casse (mais préservant la casse). Je travaille généralement autour de ceci comme ceci:
la source
git push origin master
. Si git refuse de mettre à jour la télécommande, vous devrez peut-être ajouter un fichier factice (par exempletouch stam
) et faire le push. Suivi par une suppression ultérieure de stam et appuyez à nouveau.Vous pouvez dire à git de prendre en compte le cas en exécutant
git config core.ignorecase false
la source
Comment git mv sur Mac en tenant compte de la casse
Cela se produit parce que Mac OS X implémente des fonctionnalités de préservation de la casse et d'insensibilité à la casse qui sont destinées à vous aider.
Bien que les suggestions de double renommage dans l'autre réponse fonctionnent, je recommande l'utilisation de '--force' pour un résultat de meilleure pratique:
Remarque: si vous essayez sans l'option force, git vous fera un mauvais coup comme ceci:
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.
la source
fatal: not under version control
.git
Les commandes ne fonctionnent que dans les répertoires avec des référentiels GIT.Essayez de changer l'option git config core.ignorecase en false dans votre fichier .gitconfig.
la source
git config core.ignorecase false
Les étapes suivantes m'ont aidé à résoudre le problème:
Renommez le dossier en
temp
:Stage et engagement:
Renommez le
temp
dossier selon votre choix:Terminé - Vous pouvez maintenant pousser.
la source
Si vous faites
git mv AAA aaa
ougit mv -f AAA aaa
, cela ne fonctionnera pas et vous aurez une erreurfatal: renaming 'AAA' failed: Invalid argument
.Parce que
AAA
etaaa
sont UN MÊME dossier / fichier sur des systèmes de fichiers insensibles à la casse, déplacerAAA
versaaa
signifie déplacerAAA
commeaaa/AAA
.Alors tu devrais faire
J'espère que cela vous sera utile.
la source
La raison en est que le système d'exploitation basé sur LINUX ou macOS ignore la casse pour le nom de fichier / dossier. Nous devons résoudre ce problème en suivant les étapes ci-dessous
la source
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 finder. Vous pouvez le faire en tapant ceci sur le terminal:
2 - Relancez le finder et accédez au répertoire de votre projet
3 - Maintenant, changez simplement le nom de votre dossier, disons d'une fonctionnalité à l'autre. Et voilà.
la source
Vous pouvez également le faire manuellement sans utiliser les commandes GIT. À l'intérieur du
.git
dossier, supprimez simplement le dossier avec le nom que vous voulez ieSomeName
. Et puis renommez le dossiersomename
enSomeName
. Plus de détails sur: Comment corriger le nom de dossier défini sur majuscule et git converti en minusculela source
J'ai eu le même problème et j'utilise la solution ci-dessous. J'utilise ceci pour renommer des lots, des répertoires et des fichiers, etc.:
Comme détaillé ici.
la source
Aucun de ceux-ci ne m'a vraiment aidé, je me demandais toujours de cacher mes modifications, car ma situation était que mon dossier local était en majuscule mais pas la télécommande, et ma branche était en retard et je ne pouvais plus tirer à cause des différences de capitalisation des fichiers dans la structure des dossiers.
La seule façon de résoudre ce problème était de supprimer ma succursale locale et de vérifier la télécommande.
la source