51 votes

Git: renommer le fichier

Je voulais renommer un dossier de " Frameworks " à " frameworks ", mais git ne m'a pas laissé ajouter le nouveau nom en minuscule. Je suppose que cela traite les noms de fichiers insensibles à la casse, n'est-ce pas?

A git add frameworks/ -f n'a pas aidé

97voto

VonC Points 414372

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

2voto

kvz Points 745

Si vous hébergez sur Github, vous pouvez utiliser la fonction de changement de nom sur leur site Web. J'ai dû changer le boîtier pour 5 fichiers et j'ai trouvé que cela fonctionnait vraiment bien.

1voto

David Points 1349

J'avais un problème similaire et je ne pouvais pas obtenir un nouveau nom de dossier (cas différent) à modifier lors de la mise en pension à distance. J'ai trouvé que la solution la plus simple consistait simplement à déplacer le fichier du dépôt et à le valider. Déclencher une action de suppression. Puis rajoutez et quand j'ai ajouté, il est venu avec le cas approprié.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X