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 la meilleure façon?
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 la meilleure façon?
Réponses:
Renommer (ou déplacer) de base:
git mv <old name> <new name>
Renommer sensible à la casse, par exemple. de casesensitive
à - CaseSensitive
vous devez suivre deux étapes:
git mv casesensitive tmp
git mv tmp CaseSensitive
(En savoir plus 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.
casesensitive
à CaseSensitive
, vous pouvez le faire de cette façon: git mv casesensitive Temp
puis git mv Temp CaseSensitive
git rm -rf --cached path/to/your/directories
ajoutez-le et
git config core.ignorecase false
puis exécuter les commandes successivement, sinon, pour la deuxième partie, j'obtiendrais une source is empty
erreur.
Si vous recevez cette erreur: fatal: échec du changement de nom de "nom de dossier": argument non valide
Essaye ça:
git mv foldername tempname && git mv tempname folderName
git mv foldername tempname
et git mv tempname folderName
, qui devrait fonctionner sous Windows.
1. Changez 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 à l'index et de les valider après avoir renommé avec git mv.
3. Renommer le nom de dossier en nom de dossier sur les systèmes de fichiers insensibles à la casse
Un simple changement de nom avec une commande mv normale (pas git mv) ne sera pas reconnu comme un changement de fichier de 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 vous ne l'avez pas configuré pour être sensible à la casse, vous verrez un message d'erreur comme celui-ci:
fatal: échec du changement de nom de "nom de dossier": argument non valide
Et voici ce que vous pouvez faire pour le faire fonctionner: -
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 l'avoir renommé en un autre nom de dossier, 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 bien. Le système de fichiers ne reconnaîtra toujours pas un changement des majuscules, mais git le fait en le renommant en un nouveau nom de dossier, et c'est tout ce que nous voulions :)
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 le même et qu'il ne s'agit que d'une opération de renommage, et il apparaîtra comme une entrée de renommage dans l'historique. Vous pouvez vérifier que c'est le cas avant la validation en utilisantgit status
Depuis l'application Web, je pense que vous ne pouvez pas, mais vous pouvez renommer tous les dossiers dans Git Client, il déplacera vos fichiers dans les nouveaux dossiers renommés, puis valider et pousser vers le référentiel distant.
J'ai eu un problème très similaire: j'ai dû renommer différents dossiers de majuscules en minuscules (comme Abc -> abc), j'ai renommé tous les dossiers avec un nom fictif (comme 'abc___') et je me suis engagé dans un référentiel distant, après que j'ai renommé tous les dossiers au nom d'origine avec les minuscules (comme abc) et il les a pris!
Je l'ai résolu en deux étapes. Pour renommer un dossier à l'aide de la commande mv, vous devez disposer de droits pour le faire, si vous n'en avez pas le droit, vous pouvez suivre ces étapes. Supposons que vous souhaitiez renommer la sensibilité à la casse en sensible à la casse.
Étape 1: renommer le dossier (sensible à la casse) en quelque chose d'autre depuis l'explorateur. Par exemple, Renommer la casse en dossier1 valide cette modification.
Étape 2: Renommez ce dossier nouvellement nommé (dossier1) au nom sensible à la casse attendu (sensible à la casse), par exemple. Renommez le dossier1 en sensible à la casse. Validez ce changement.
Pour le changement de nom sensible à la casse, cela git mv somefolder someFolder
a fonctionné pour moi avant mais pas aujourd'hui pour une raison quelconque. Donc, comme solution de contournement, j'ai créé un nouveau dossier temp
, déplacé tout le contenu de somefolder
dans temp
, supprimé somefolder
, validé le temp
, puis créé someFolder
, déplacé tout le contenu de temp
dans someFolder
, supprimé temp
, validé et poussé someFolder
et cela a fonctionné! Apparaît comme someFolder
dans git.
Renommez simplement le dossier. git est un "content-tracker", donc les hachages SHA1 sont les mêmes et git sait que vous le renommez. La seule chose qui change est l'arbre-objet.
rm <directory>
git add .
git commit