J'ai un
dir1/contient beaucoup de fichiers et de sous-répertoires, je souhaite changer le nom du répertoire en dir2 /. j'ai essayé
git mv dir1/dir2 /
J'ai eu ce message:
fatal: renaming 'dir1' failed: Permission denied
mettre à jour:
J'ai couru à partir de git pour la ligne de commande Windows http://code.google.com/p/msysgit/
Quelle est la commande correcte?
Vous pouvez simplement utiliser des outils Unix standard, ou quel que soit votre système d'exploitation. Alors:
mv dir1 dir2
devrait marcher. Assurez-vous simplement que vous ajoutez les répertoires dir1 et dir2 à la zone intermédiaire une fois que vous avez terminé, afin de valider les modifications.
Voici un exemple de validation du changement (une fois effectué):
git add dir1 dir2 && git commit dir1 dir2
Il y a probablement d'autres façons de le faire aussi.
Il se peut également que le répertoire (ou un fichier contenu dans celui-ci) soit utilisé par un autre programme, ce qui vous empêche de faire quoi que ce soit avec ce dossier. Seulement sous Windows, évidemment.
Utilisez le Process Explorer si vous ne savez pas quel programme a capturé ce répertoire/fichier.
Les répertoires source et cible doivent tous deux être archivés dans le référentiel git. Si vous déplacez dir1 vers dir2 et que dir2 n'est pas encore validé, vous obtiendrez ce message d'erreur.
Je cours git dans Cygwin. J'ai eu le même problème jusqu'à ce que je supprime les fichiers non suivis du répertoire à renommer. Cela a permis au git mv
de se terminer correctement.
Si vous voyez que des fichiers non suivis dans votre répertoire sont renommés lorsque vous exécutez git status
, vous devrez les déplacer temporairement ailleurs et les ramener après le git mv
.
J'ai eu le même problème. TGitCache.exe était le processus qui empêchait le dossier d'être renommé. En utilisant TaksExplorer, j'ai tué le processus et exécuté la commande à partir de l'invite de commande Git Bash.