Come rinominare un repository Git?


435

git mvrinomina un file o una directory in un repository. Come posso rinominare il repository Git stesso?


1
Ho provato ad usare mvper rinominare PROJ0.git nel mio `repository host ', funziona. Ma non so se sia giusto, intendo, valido.
Yantao Xie,

5
La tua domanda va bene Git ha repository e possono contenere progetti come i progetti Eclipse se decidi di collocare il tuo progetto in un repository git. Se è quello che stavi cercando, vedi come farlo nella risposta in basso.
Danny Remington - OMS

3
gitstesso non ha alcuna disposizione per specificare il nome del repository. Il nome della directory principale è l' unica fonte di verità relativa al nome del repository. Il .git/descriptionfile però è usato solo da alcune applicazioni comeGitweb
Ujjwal Singh,

Risposte:


620

Esistono varie interpretazioni possibili di cosa si intende rinominando un repository Git: il nome visualizzato, la directory del repository o il nome del repository remoto. Ognuno richiede passaggi diversi per rinominare.

Nome visualizzato

Rinomina il nome visualizzato (ad esempio, mostrato da gitweb):

  1. Modifica .git/descriptionper contenere il nome del repository.
  2. Salva il file.

Directory del repository

Git non fa riferimento al nome della directory contenente il repository, come utilizzato da git clone master child, quindi possiamo semplicemente rinominarlo:

  1. Apri un prompt dei comandi (o la finestra del file manager).
  2. Passare alla directory che contiene la directory del repository (ovvero, non accedere alla directory del repository stessa).
  3. Rinominare la directory (ad esempio, utilizzando mvdalla riga di comando o il F2tasto di scelta rapida da una GUI).

Repository remoto

Rinominare un repository remoto come segue:

  1. Vai all'host remoto (ad esempio, https://github.com/User/project ).
  2. Segui le istruzioni dell'host per rinominare il progetto (differirà da host a host, ma di solito le impostazioni sono un buon punto di partenza).
  3. Passare alla directory del repository locale (ovvero, aprire un prompt dei comandi e passare alla directory del repository).
  4. Determina il nuovo URL (ad esempio, git@github.com:User/project-new.git)
  5. Imposta il nuovo URL usando Git:

    git remote set-url origin git@github.com:User/project-new.git
    

3
Nel secondo caso, cosa succede a chi ha già clonato il repository?
Frederico Schardong,

3
Niente di male. Conservano il nome originale, ma il loro telecomando ora è sbagliato: se vogliono estrarre gli aggiornamenti devono collegarsi al nuovo nome. Se entrambi tu e loro state sincronizzando o un repository centrale manterrà il nome originale e tutto continuerà a funzionare
Alex Brown

14
Si noti che l'asserzione "git non fa riferimento a questo nome di directory" nel secondo caso è errata se si utilizzano i sottomoduli: git utilizza un percorso assoluto per fare riferimento ai sottomoduli, quindi rinominando la directory del repository si romperanno i sottomoduli. Vedi stackoverflow.com/questions/10144149/…
Edward

Sto usando la GUI di GitHub per Windows e non ho dovuto cambiare il file .git / description (non ne ho uno). Il nome visualizzato nella GUI è cambiato dopo aver eseguito l'ultimo passaggio per ripristinare l'origine.
Joe Ernst,

4
Le persone continuano a menzionare .git / description, ma senza alcuna menzione di quale modifica hai effettivamente
apportato

24

Un repository Git non ha un nome. Se lo desideri, puoi semplicemente rinominare la directory contenente il tuo worktree.


7
Sì, un repository git ha un nome. Ho ricevuto questo errore dopo aver rinominato:$ git status fatal: Not a git repository: C:/xxx/.git/xxx fatal: git status --porcelain failed
Sawny,

@Sawny, non vedo cosa abbia a che fare con nulla.
Tobu,

19
Hai detto che un repository git non avrebbe un nome, ma non è vero. Se usi i sottomodelli e rinomini la cartella, otterrai errori da Git. Vedere stackoverflow.com/questions/9878860/...
Sawny

6
Va bene, il percorso di un sottomodulo all'interno di un repository git è importante. È vero ma non pertinente per questa domanda particolare.
Tobu,

5
Naturalmente i repository hanno un nome. Vedi sotto come cambiarlo.
Danny Remington - OMS

19

Rinomina PRJ0.gitin PROJ1.git, quindi modifica la variabile URL situata nel .git/configfile del tuo progetto.


15

In un nuovo repository, ad esempio, dopo a $ git init, la directory .git conterrà il file .git / description.

Che assomiglia a questo:

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

La modifica di questo nel repository locale non lo modificherà sul telecomando.


La risposta di Alex Brown aveva incluso la tua.
Yantao Xie,

13

Se intendevi rinominare il repository, vai al repository e fai clic su "admin", quindi rinomina.

Quando vedi il riquadro rosso che ti avverte di qualche caduta del cielo e altre cose, vai a leggere questa domanda .


12
Potrebbe aiutare gli altri a notare che questo è un suggerimento specifico di Github e non si applica a Git in generale.
founddrama

1
a partire da gennaio 2013, le istruzioni di github ora dovrebbero essere: (accedi a github), vai al tuo repository, quindi vai su "Impostazioni" >> "Opzioni" e cerca lì un pulsante Rinomina. Per quanto riguarda gli avvertimenti rossi sulle cose brutte che accadono, Droogans si collega all'altro, quindi la domanda è ancora altamente raccomandata.
pestofago

12

Per rinominare qualsiasi repository del tuo account GitHub:

  1. Vai a quel particolare repository che desideri rinominare
  2. Vai alla scheda delle impostazioni
  3. Lì, nella sezione del nome del repository, digitare il nuovo nome che si desidera inserire e fare clic Rename

Non è una domanda GitHub, si tratta di git.
robrecord,

10

Se stai usando GitLab o GitHub, puoi modificare questi file graficamente.

Utilizzando GitLab

Vai al tuo progetto impostazioni del . Lì puoi modificare il nome del progetto e, soprattutto, puoi rinominare il tuo repository (è quando inizi a entrare nella sezione di pericolo).

Una volta fatto ciò, le configurazioni dei client locali devono essere aggiornate utilizzando

git remote set-url origin sshuser@gitlab-url:GROUP/new-project-name.git

9
  • Sul lato server, basta rinominare il repository con il comando mv come al solito:

    mv oldName.git newName.git
    
  • Quindi, sul lato client, modifica il valore [remote "origin"]dell'URL in quello nuovo:

    url=example.com/newName.git
    

Ha funzionato per me.


8

Se sei in Eclipse e hai installato Egit, puoi rinominare il repository che contiene un progetto procedendo come segue:

1) In Eclipse : chiudere tutti i progetti presenti nel repository.

2) Nel file system : individuare la directory / cartella che contiene il repository.

3) Nel file system : rinominare la directory / cartella che contiene il repository.

4) Nel file system : aprire la directory / cartella che contiene il repository e rinominare la directory / cartella del progetto di qualsiasi progetto che si desidera rinominare in modo che corrisponda al nuovo nome del progetto. (Questo non è necessario ma fornisce coerenza tra il nome del progetto in Eclipse e la directory / cartella del progetto nel repository.)

5) In Eclipse : elimina tutti i progetti presenti nel repository ma assicurati di NON selezionare la casella di controllo "Elimina i contenuti dal file system". (Il progetto non dovrebbe più contenere la posizione corretta dei contenuti del file system in modo che i dati non possano essere eliminati in ogni caso, ma è meglio prevenire che curare.)

6) In Eclipse : dal menu selezionare l'opzione File | Importa ...

7) In Eclipse : nella finestra di dialogo aprire la cartella "Git", selezionare "Progetti da Git" e fare clic su "Avanti".

8) In Eclipse : nella finestra di dialogo selezionare "Local" e fare clic su "Next".

9) In Eclipse : nella finestra di dialogo fai clic sul pulsante "Aggiungi ...".

10) In Eclipse : nella finestra di dialogo assicurarsi che la casella di controllo accanto al repository sia selezionata e fare clic su "Fine".

11) In Eclipse : nella finestra di dialogo selezionare il repository e fare clic su "Avanti".

12) In Eclipse : nella finestra di dialogo selezionare il pulsante di opzione "Importa progetti esistenti", selezionare la "Directory di lavoro" e fare clic su "Avanti".

13) In Eclipse : nella finestra di dialogo selezionare la casella di controllo accanto ai progetti su cui si desidera lavorare e fare clic su "Fine".

14) In Eclipse : rinominare tutti i progetti presenti nel repository, se desiderato. (Per coerenza tra Eclipse e il file system, assegnare loro lo stesso nome della directory / cartella del progetto all'interno della directory / cartella del repository.)


+1 (divertito e non sorpreso dai 14 passaggi richiesti per questo in Eclipse, in particolare il 'se hai installato Egit', che comporta alcune decine di passaggi in più ...)
Jack Wasey

7

Git stesso non ha disposizioni per specificare il nome del repository. Il nome della directory principale è l'unica fonte di verità relativa al nome del repository.

Il .git/descriptionsebbene è usato solo da alcune applicazioni, come GitWeb .


5

Per gli utenti di Amazon AWS codecommit ,

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

Riferimento: qui


4

Per essere semplice, basta rimuovere quel progetto Eclipse (non scegliere il contenuto sul disco), quindi reimportare nuovamente il progetto.

Eclipse identificherà il progetto collegato a Git e lo inserirà nella vista prospettica Git.

Esso funziona magicamente.


5
Questo non risponde alla domanda originale.
mjuarez,

Questa risposta è un commento per Danny Remington - la risposta di OMS ?
Peter Mortensen,

4

Con Github come telecomando

Rinominare il Repo remoto su Github

Per quanto riguarda il repository remoto, se si utilizza Github o Github Enterprise come posizione del server per il salvataggio / distribuzione remota del repository, è possibile semplicemente rinominare il repository direttamente nelle impostazioni del repository.

Dalla pagina principale del repository, la scheda delle impostazioni si trova sulla destra e il nome del repository è il primo elemento nella pagina:

inserisci qui la descrizione dell'immagine

Github reindirizzerà le richieste al nuovo URL

Una caratteristica molto utile in Github quando si rinomina un repository, è che Github salverà il vecchio nome del repository e tutti gli URL correlati e reindirizzerà il traffico ai nuovi URL . Poiché il nome utente / org e il nome repo fanno parte dell'URL, una ridenominazione modificherà l'URL.

Poiché Github salva il vecchio nome del repository e reindirizza le richieste ai nuovi URL, se qualcuno utilizza collegamenti basati sul vecchio nome del repository quando tenta di accedere a problemi, wiki, stelle o follower, arriveranno comunque nella nuova posizione sul sito Web di Github. Github reindirizza anche livello inferiore comandi Git piace git clone, git fetchecc

Ulteriori informazioni sono disponibili nella Guida di Github per rinominare un Repo

Rinominare il nome Repo locale

Come altri hanno già detto, il "nome" locale del tuo repository è in genere considerato il nome della directory / directory principale e puoi modificarlo, spostarlo o copiarlo in qualsiasi posizione e non influirà affatto sul repository.

Git è progettato per preoccuparsi solo dei file all'interno della cartella principale.


"se qualcuno utilizza collegamenti basati sul vecchio nome del repository ... arriverà comunque nella nuova posizione sul sito Web di Github". Sì, esiste una tale funzione. La stessa cosa vale per BitBucket: community.atlassian.com/t5/Bitbucket-questions/… . Sarebbe bello sapere come distruggere completamente qualsiasi riferimento al vecchio nome, perché capisco che non si tratta di rinominare, ma di copiare. Sarebbe bello conoscere la procedura corretta per la ridenominazione completa (con la distruzione di tutte le cose vecchie).
Alexander Samoylov,

@AlexanderSamoylov Sto solo indovinando qui, ma dubito sinceramente che tutto sia salvato nel vecchio formato. Github dovrebbe semplicemente mantenere riservato il vecchio nome dell'archivio e reindirizzare tutto il traffico che arriva sul vecchio nome dell'archivio al nuovo nome dell'archivio. cioè https://github.com/oldrepo/some_pathreindirizzerà a https://github.com/newrepo/some_path, dove tutto è stato spostato. L'unico aspetto negativo dovrebbe essere che il vecchio nome del repository è riservato in modo permanente in modo che non possa essere riutilizzato (anche buono per evitare che le persone che hanno salvato il vecchio URL accedervi).
LightCC



0

Apri il repository git sul browser, arriva a "Setttings", puoi vedere il pulsante Rinomina.

Immettere il nuovo "Nome repository" e fare clic sul pulsante "Rinomina".


0

Hai provato a cambiare il nome del tuo progetto package.jsoned eseguire il comando git initper reinizializzare Git esistente, invece?

La tua cronologia Git esistente esisterà ancora.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.