Comment renommer un référentiel Git?

435

git mvrenomme un fichier ou un répertoire dans un référentiel. Comment renommer le référentiel Git lui-même?

Yantao Xie
la source
1
J'ai essayé mvde renommer le PROJ0.git dans mon `hôte de référentiel ', ça marche. Mais je ne sais pas si c'est vrai, je veux dire, valide.
Yantao Xie
5
Votre question est très bien. Git a des référentiels et ils peuvent contenir des projets comme des projets Eclipse si vous décidez de placer votre projet dans un référentiel git. Si c'est ce que vous vouliez, voyez comment le faire dans la réponse ci-dessous.
Danny Remington - OMS
3
gitlui-même n'a aucune disposition pour spécifier le nom du référentiel. Le nom du répertoire racine est la seule source de vérité concernant le nom du référentiel. Le .git/descriptionfichier n'est cependant utilisé que par certaines applications commeGitweb
Ujjwal Singh

Réponses:

620

Il existe différentes interprétations possibles de ce que l'on entend par renommer un référentiel Git: le nom affiché, le répertoire du référentiel ou le nom du référentiel distant. Chacun nécessite des étapes différentes pour renommer.

Nom affiché

Renommez le nom affiché (par exemple, indiqué par gitweb):

  1. Modifiez .git/descriptionpour contenir le nom du référentiel.
  2. Enregistrez le fichier.

Répertoire du référentiel

Git ne fait pas référence au nom du répertoire contenant le référentiel, tel qu'il est utilisé par git clone master child, nous pouvons donc simplement le renommer:

  1. Ouvrez une invite de commande (ou une fenêtre du gestionnaire de fichiers).
  2. Accédez au répertoire contenant le répertoire du référentiel (c'est-à-dire, n'allez pas dans le répertoire du référentiel lui-même).
  3. Renommez le répertoire (par exemple, à l'aide mvde la ligne de commande ou du F2raccourci clavier d'une interface graphique).

Référentiel distant

Renommez un référentiel distant comme suit:

  1. Accédez à l'hôte distant (par exemple, https://github.com/User/project ).
  2. Suivez les instructions de l'hôte pour renommer le projet (diffère d'un hôte à l'autre, mais les paramètres sont généralement un bon point de départ).
  3. Accédez à votre répertoire de référentiel local (c'est-à-dire, ouvrez une invite de commande et accédez au répertoire du référentiel).
  4. Déterminez la nouvelle URL (par exemple, [email protected]:User/project-new.git)
  5. Définissez la nouvelle URL à l'aide de Git:

    git remote set-url origin [email protected]:User/project-new.git
    
Alex Brown
la source
3
Dans le deuxième cas, qu'advient-il de celui qui a déjà cloné le référentiel?
Frederico Schardong
3
Rien de mal. Ils conservent le nom d'origine, mais leur télécommande a maintenant tort: ​​s'ils veulent extraire les mises à jour, ils doivent se connecter au nouveau nom. Si vous et eux êtes synchronisés ou un référentiel central, il conservera le nom d'origine et tout continuera à fonctionner
Alex Brown
14
Notez que l'assertion "git ne fait pas référence à ce nom de répertoire" dans le second cas est fausse si vous utilisez des sous-modules: git utilise un chemin absolu pour faire référence aux sous-modules, donc renommer votre répertoire de référentiel cassera les sous-modules. Voir stackoverflow.com/questions/10144149/…
Edward
J'utilise l'interface graphique GitHub pour Windows et je n'ai pas eu à modifier le fichier .git / description (je n'en ai pas). Le nom affiché dans l'interface graphique a changé après avoir effectué la dernière étape de réinitialisation de l'origine.
Joe Ernst
4
Les gens continuent de mentionner .git / description, mais sans mentionner le changement que vous y avez réellement apporté pour renommer le
référentiel
24

Un référentiel Git n'a pas de nom. Vous pouvez simplement renommer le répertoire contenant votre arbre de travail si vous le souhaitez.

Tobu
la source
7
Oui, un git repo a un nom. J'ai eu cette erreur après avoir renommé:$ git status fatal: Not a git repository: C:/xxx/.git/xxx fatal: git status --porcelain failed
Sawny
@Sawny, je ne vois pas ce que cela a à voir avec quoi que ce soit.
Tobu
19
Vous avez dit qu'un git repo n'a pas de nom, mais ce n'est pas vrai. Si vous utilisez des sous-carburants et renommez simplement le dossier, vous obtiendrez des erreurs de git. Voir stackoverflow.com/questions/9878860/…
Sawny
6
D'accord, le chemin d'un sous-module dans un référentiel git est important. C'est vrai mais pas pertinent pour cette question particulière.
Tobu
5
Bien sûr, les référentiels ont un nom. Voir ci-dessous comment le changer.
Danny Remington - OMS
19

Renommez- PRJ0.gitle PROJ1.git, puis modifiez la variable URL située dans le .git/configfichier de votre projet.

Alex
la source
15

Dans un nouveau référentiel, par exemple, après a $ git init, le répertoire .git contiendra le fichier .git / description.

Qui ressemble à ceci:

Unnamed repository; edit this file 'description' to name the repository.

Le modifier sur le référentiel local ne le modifiera pas sur la télécommande.

mholm815
la source
La réponse d'Alex Brown incluait votre.
Yantao Xie
13

Si vous vouliez renommer votre référentiel, accédez à votre référentiel et cliquez sur "admin", puis renommez.

Une fois que vous voyez la boîte rouge vous avertissant de la chute du ciel et d'autres choses, allez lire cette question .

Droogans
la source
12
Cela pourrait aider les autres à noter qu'il s'agit d'une suggestion spécifique à Github, et ne s'appliquera pas à Git en général.
drame trouvé
1
à partir de janvier 2013, les instructions de github devraient maintenant être: (connectez-vous à github), allez dans votre dépôt, puis allez dans "Paramètres" >> "Options" et recherchez un bouton Renommer là. En ce qui concerne les avertissements rouges concernant les mauvaises choses qui se produisent, les Droogans sont liés à l'autre, donc la question est toujours fortement recommandée.
pestophage
12

Pour renommer un référentiel de votre compte GitHub:

  1. Accédez à ce référentiel particulier que vous souhaitez renommer
  2. Accédez à l'onglet des paramètres
  3. Là, dans la section nom du référentiel, tapez le nouveau nom que vous souhaitez mettre et cliquez sur Rename
Neha Kumari
la source
Pas une question GitHub, il s'agit de git.
robrecord
10

Si vous utilisez GitLab ou GitHub, vous pouvez modifier ces fichiers graphiquement.

Utiliser GitLab

Accédez aux paramètres de votre projet . Là, vous pouvez modifier le nom du projet et, surtout, vous pouvez renommer votre référentiel (c'est à ce moment que vous commencez à entrer dans la section danger).

Une fois cela fait, les configurations des clients locaux doivent être mises à jour à l'aide de

git remote set-url origin sshuser@gitlab-url:GROUP/new-project-name.git
avi.elkharrat
la source
9
  • Côté serveur, renommez simplement le référentiel avec la commande mv comme d'habitude:

    mv oldName.git newName.git
    
  • Ensuite, côté client, changez la valeur de l' [remote "origin"]URL en la nouvelle:

    url=example.com/newName.git
    

Ça a marché pour moi.

Parison
la source
8

Si vous êtes dans Eclipse et avez installé Egit, vous pouvez renommer le référentiel qui contient un projet en procédant comme suit:

1) Dans Eclipse : fermez tous les projets qui se trouvent dans le référentiel.

2) Dans le système de fichiers : recherchez le répertoire / dossier qui contient le référentiel.

3) Dans le système de fichiers : Renommez le répertoire / dossier qui contient le référentiel.

4) Dans le système de fichiers : Ouvrez le répertoire / dossier qui contient le référentiel et renommez le répertoire / dossier du projet de tout projet que vous souhaitez renommer afin qu'il corresponde au nouveau nom du projet. (Ce n'est pas obligatoire mais cela donne une cohérence entre le nom du projet dans Eclipse et le répertoire / dossier du projet dans le référentiel.)

5) Dans Eclipse : supprimez tous les projets qui se trouvent dans le référentiel mais assurez-vous de NE PAS cocher la case «Supprimer le contenu du système de fichiers». (Le projet ne doit plus contenir l'emplacement correct du contenu du système de fichiers afin que les données ne puissent en aucun cas être supprimées, mais il vaut mieux prévenir que guérir.)

6) Dans Eclipse : dans le menu, sélectionnez l'option Fichier | Importer ...

7) Dans Eclipse : Dans la boîte de dialogue, ouvrez le dossier 'Git', sélectionnez 'Projects from Git' et cliquez sur 'Next'.

8) Dans Eclipse : Dans la boîte de dialogue, sélectionnez «Local» et cliquez sur «Suivant».

9) Dans Eclipse : Dans la boîte de dialogue, cliquez sur le bouton 'Ajouter ...'.

10) Dans Eclipse : Dans la boîte de dialogue, assurez-vous que la case à côté du référentiel est cochée et cliquez sur «Terminer».

11) Dans Eclipse : Dans la boîte de dialogue Dans, sélectionnez le référentiel et cliquez sur 'Suivant'.

12) Dans Eclipse : Dans la boîte de dialogue, sélectionnez le bouton radio «Importer les projets existants», sélectionnez le «Répertoire de travail» et cliquez sur «Suivant».

13) Dans Eclipse : Dans la boîte de dialogue Dans la case à cocher à côté des projets sur lesquels vous souhaitez travailler et cliquez sur «Terminer».

14) Dans Eclipse : renommez tous les projets qui se trouvent dans le référentiel si vous le souhaitez. (Par souci de cohérence entre Eclipse et le système de fichiers, donnez-leur le même nom que le répertoire / dossier du projet dans le répertoire / dossier du référentiel.)

Danny Remington - OMS
la source
+1 (amusé et pas surpris par 14 étapes requises pour cela dans Eclipse, en particulier le `` si vous avez installé Egit '', ce qui implique quelques dizaines d'autres étapes ...)
Jack Wasey
7

Git lui-même n'a aucune disposition pour spécifier le nom du référentiel. Le nom du répertoire racine est la seule source de vérité concernant le nom du référentiel.

Le .git/descriptionbien n'est utilisé que par certaines applications, comme GitWeb .

Ujjwal Singh
la source
5

Pour les utilisateurs d' Amazon AWS codecommit ,

aws codecommit update-repository-name --old-name MyDemoRepo --new-name MyRenamedDemoRepo

Référence: ici

Extrême
la source
4

Pour être simple, supprimez simplement ce projet Eclipse (ne choisissez pas le contenu sur le disque), puis réimportez à nouveau le projet.

Eclipse identifiera le projet connecté à Git et le mettra en vue perspective Git.

Il fonctionne comme un charme.

Richard
la source
5
Cela ne répond pas à la question d'origine.
mjuarez
Cette réponse est-elle un commentaire pour Danny Remington - la réponse d'OMS ?
Peter Mortensen
4

Avec Github comme télécommande

Renommer le référentiel distant sur Github

En ce qui concerne le référentiel distant, si vous utilisez Github ou Github Enterprise comme emplacement de serveur pour enregistrer / distribuer votre référentiel à distance, vous pouvez simplement renommer le référentiel directement dans les paramètres du référentiel.

Depuis la page principale du référentiel, l'onglet des paramètres se trouve à droite et le nom du référentiel est le premier élément de la page:

entrez la description de l'image ici

Github redirigera les demandes vers la nouvelle URL

Une fonctionnalité très intéressante de Github lorsque vous renommez un référentiel est que Github enregistre l'ancien nom du référentiel et toutes les URL associées et redirige le trafic vers les nouvelles URL . Étant donné que votre nom d'utilisateur / organisation et le nom du référentiel font partie de l'URL, un changement de nom modifiera l'URL.

Étant donné que Github enregistre l'ancien nom du référentiel et redirige les demandes vers les nouvelles URL, si quelqu'un utilise des liens basés sur l'ancien nom du référentiel lorsqu'il essaie d'accéder aux problèmes, au wiki, aux étoiles ou aux abonnés, il arrivera toujours au nouvel emplacement sur le site Web de Github. Github redirige également le niveau des commandes Git bas aiment git clone, git fetchetc.

Vous trouverez plus d'informations dans l' aide de Github pour renommer un référentiel

Renommer le nom du référentiel local

Comme d'autres l'ont mentionné, le "nom" local de votre dépôt est généralement considéré comme le nom du dossier / répertoire racine, et vous pouvez le modifier, déplacer ou copier le dossier vers n'importe quel emplacement et cela n'affectera pas du tout le dépôt.

Git est conçu pour ne se soucier que des fichiers contenus dans le dossier racine.

LightCC
la source
"Si quelqu'un utilise des liens basés sur l'ancien nom du dépôt ... ils arriveront toujours au nouvel emplacement sur le site Web de Github". Oui, il existe une telle fonctionnalité. La même chose est valable pour BitBucket: community.atlassian.com/t5/Bitbucket-questions/… . Ce serait bien de savoir comment détruire complètement toutes les références à l'ancien nom, car je crois comprendre qu'il ne s'agit pas de renommer, mais de copier. Ce serait bien de connaître la procédure correcte pour le renommage complet (avec destruction de tous les vieux trucs).
Alexander Samoylov
@AlexanderSamoylov Je suis juste en train de deviner ici, mais je doute sincèrement que tout soit sauvegardé dans l'ancien format. Github devrait simplement garder l'ancien nom d'archive réservé et rediriger tout le trafic provenant de l'ancien nom d'archive vers le nouveau nom d'archive. c'est-à https://github.com/oldrepo/some_path- dire va juste rediriger vers https://github.com/newrepo/some_path, où tout a été déplacé. Le seul inconvénient devrait être que l'ancien nom du référentiel est réservé de façon permanente afin qu'il ne puisse pas être réutilisé (également bon pour éviter que les personnes qui ont enregistré l'ancienne URL y accèdent).
LightCC
3

Le changement de nom principal est ici (img 1), mais aussi changez readme.md (img 2)

entrez la description de l'image ici

entrez la description de l'image ici

CENDRE
la source
7
La question concerne git plutôt que github.
Yantao Xie
n'a pas renommé, comme ça
Manjitha teshara
0

Ouvrez le dépôt git sur le navigateur, accédez à "Setttings", vous pouvez voir le bouton renommer.

Saisissez un nouveau "Nom de référentiel" et cliquez sur le bouton "Renommer".

bshr
la source
0

Avez-vous essayé de changer le nom de votre projet package.jsonet d'exécuter la commande git initpour réinitialiser le Git existant à la place?

Votre historique Git existant existera toujours.

priyabagus
la source
-2

Cela a fonctionné pour moi sur Windows 10, via la ligne de commande:

git checkout <oldname>
git branch -m <newname>

De Comment renommer une branche Git locale et distante

Il s'agissait d'un référentiel local uniquement (pas sur les télécommandes).

emery.noel
la source