web-dev-qa-db-fra.com

Dans un référentiel Git, comment renommer correctement un répertoire?

Je pense que cela devrait fonctionner pour copier le répertoire à renommer dans un nouveau répertoire avec le nom souhaité, et supprimer l'ancien répertoire , et git add, git commit et Push tout. Mais est-ce le meilleur moyen?

530
qazwsx

Renommer de base (ou déplacer):

git mv <old name> <new name>

Renommer sensible à la casse, par exemple. de casesensitive à CaseSensitive— vous devez utiliser deux étapes:

git mv casesensitive tmp
git mv tmp CaseSensitive

( Plus d'informations sur la sensibilité à la casse dans Git… )

… Suivi de commit et Push serait le moyen le plus simple de renommer un répertoire dans un dépôt Git.

954
CB Bailey

Si vous recevez cette erreur: irrécupérable: le renommage du nom de nom de pliage a échoué: argument non valide

Essaye ça:

git mv foldername tempname && git mv tempname folderName

86
Jacques Betancourt

1. Changer le nom d'un dossier de oldfolder en newfolder

git mv oldfolder newfolder

2. Si newfolder est déjà dans votre référentiel et que vous souhaitez le remplacer et utiliser: - force

git mv -f oldfolder newfolder

N'oubliez pas d'ajouter les modifications pour les indexer et les valider après avoir renommé git mv.

. Modification du nom de nom de répertoire en tant que folderName sur des systèmes de fichiers non sensibles à la casse

Le renommage simple avec une commande mv normale (pas git mv) ne sera pas reconnu comme un changement de fichier par git. Si vous l’essayez avec la commande ‘git mv’ comme dans la ligne suivante

git mv foldername folderName

Si vous utilisez un système de fichiers insensible à la casse, par exemple, vous êtes sur un Mac et que vous ne l'avez pas configuré pour être sensible à la casse, vous rencontrerez un message d'erreur comme celui-ci:

irrécupérable: renommage du nom de nom de pliage en argument non valide

Et voici ce que vous pouvez faire pour que cela fonctionne: -

git mv foldername tempname && git mv tempname folderName

Cela divise le processus de changement de nom en renommant d'abord le dossier en un nom de dossier complètement différent. Après avoir renommé le nom de dossier différent, le dossier peut enfin être renommé en nouveau nom de dossier. Après ces ‘git mv’, encore une fois, n’oubliez pas d’ajouter et de valider les modifications. Bien que ce ne soit probablement pas une belle technique, cela fonctionne parfaitement. Le système de fichiers ne reconnaîtra toujours pas le changement de casse des lettres, mais git le fera parce qu’il a été renommé en un nouveau nom de répertoire, et c’est tout ce que nous voulions :)

50
akshay_rahar

Vous pouvez renommer le répertoire à l'aide du système de fichiers. Ensuite, vous pouvez faire git rm <old directory> et git add <new directory> ( Page d'aide ). Ensuite, vous pouvez vous engager et pousser.

Git détectera que le contenu est identique et qu'il ne s'agit que d'une opération de changement de nom. Il apparaîtra alors comme une entrée de changement de nom dans l'historique. Vous pouvez vérifier que c'est le cas avant la validation en utilisant git status

10
Oleksi

De l'application Web, je pense que vous ne pouvez pas, mais vous pouvez renommer tous les dossiers dans Git Client, cela déplacera vos fichiers dans les nouveaux dossiers renommés, puis les validations et le dépôt dans le référentiel distant.

J'ai eu un problème très similaire: J'ai dû renommer différents dossiers de minuscules à minuscules (comme Abc -> abc), j'ai renommé tous les dossiers avec un nom factice (comme 'abc___') et que je me suis engagé dans le référentiel distant, après que j’ai renommé tous les dossiers en nom original avec les minuscules (comme abc) et qu’ils les ont pris!

3
Syncro

Je l'ai résolu en deux étapes. Pour renommer un dossier à l’aide de la commande mv, vous devez disposer de droits. Si vous n’avez pas le droit, procédez comme suit. Supposons que vous souhaitiez renommer les cases sensibles à Casesensitive.

Étape 1: renommez le dossier (sensible à la casse) en un autre élément dans Explorer. Renommer la casse sensible à folder1 commet cette modification.

Étape 2: Renommez ce dossier nouvellement nommé (folder1) en le nom sensible à la casse attendu (Casesensitive), par exemple. Renommez folder1 en respectant la casse. Commettez ce changement.

0
Nilesh