Como renomear um repositório Git?

435

git mvrenomeia um arquivo ou diretório em um repositório. Como renomeio o repositório Git?

Yantao Xie
fonte
1
Eu tentei usar o mvnome para renomear o PROJ0.git no meu `repositório host ', funciona. Mas não sei se é certo, quero dizer, válido.
Yantao Xie 12/01/10
5
Sua pergunta está bem. O Git possui repositórios e eles podem conter projetos como os projetos Eclipse, se você decidir colocar seu projeto em um repositório git. Se é isso que você estava querendo, veja como fazê-lo na resposta abaixo.
Danny Remington - OMS
3
gitem si não possui nenhuma disposição para especificar o nome do repositório. O nome do diretório raiz é a única fonte de verdade referente ao nome do repositório. O .git/descriptionarquivo que é usado apenas por alguns aplicativos comoGitweb
Ujjwal Singh

Respostas:

620

Existem várias interpretações possíveis do que significa renomear um repositório Git: o nome exibido, o diretório do repositório ou o nome do repositório remoto. Cada um requer etapas diferentes para renomear.

Nome exibido

Renomeie o nome exibido (por exemplo, mostrado por gitweb):

  1. Edite .git/descriptionpara conter o nome do repositório.
  2. Salve o arquivo.

Diretório de Repositórios

O Git não faz referência ao nome do diretório que contém o repositório, conforme usado git clone master child, para que possamos simplesmente renomeá-lo:

  1. Abra um prompt de comando (ou janela do gerenciador de arquivos).
  2. Mude para o diretório que contém o diretório do repositório (ou seja, não entre no próprio diretório do repositório).
  3. Renomeie o diretório (por exemplo, usando a mvpartir da linha de comandos ou a F2tecla de atalho de uma GUI).

Repositório Remoto

Renomeie um repositório remoto da seguinte maneira:

  1. Vá para o host remoto (por exemplo, https://github.com/User/project ).
  2. Siga as instruções do host para renomear o projeto (será diferente de host para host, mas geralmente Configurações é um bom ponto de partida).
  3. Vá para o diretório do repositório local (por exemplo, abra um prompt de comando e mude para o diretório do repositório).
  4. Determine o novo URL (por exemplo, [email protected]:User/project-new.git)
  5. Defina o novo URL usando Git:

    git remote set-url origin [email protected]:User/project-new.git
    
Alex Brown
fonte
3
No segundo caso, o que acontece com quem já clonou o repositório?
Frederico Schardong 29/07
3
Nada mal. Eles mantêm o nome original, mas agora o controle remoto está errado: se eles desejam receber atualizações, precisam se conectar ao novo nome. Se você e eles estão sincronizando ou são um repositório central, ele manterá o nome original e tudo continuará funcionando
Alex Brown
14
Observe que a asserção "git não faz referência a este nome de diretório" no segundo caso está incorreta se você usar submódulos: o git usa um caminho absoluto para se referir a submódulos, portanto, renomear o diretório do repositório interromperá os submódulos. Veja stackoverflow.com/questions/10144149/…
Edward
Estou usando a GUI do GitHub for Windows e não precisei alterar o arquivo .git / description (não tenho um). O nome exibido na GUI foi alterado após a última etapa de redefinição da origem.
Joe Ernst
4
As pessoas continuam mencionando .git / descrição, mas sem menção de que a mudança que você realmente colocar lá para renomear o repo
Programador Unextraordinair
24

Um repositório Git não tem um nome. Você pode simplesmente renomear o diretório que contém sua árvore de trabalho, se desejar.

Tobu
fonte
7
Sim, um repositório Git tem um nome. Eu recebi este erro após renomear:$ git status fatal: Not a git repository: C:/xxx/.git/xxx fatal: git status --porcelain failed
Sawny
@ Sasawny, não vejo o que isso tem a ver com nada.
Tobu
19
Você disse que um repositório Git não tem nome, mas isso não é verdade. Se você usar submodelos e apenas renomear a pasta, obterá erros do git. Veja stackoverflow.com/questions/9878860/…
Sawny
6
Ok, o caminho de um sub-módulo dentro de um repositório git é importante. É verdade, mas não é relevante para esta questão em particular.
Tobu
5
Obviamente, repositórios têm um nome. Veja abaixo como alterá-lo.
Danny Remington # OMS
19

Renomeie PRJ0.gitpara PROJ1.gite edite a variável de URL localizada no .git/configarquivo do seu projeto.

Alex
fonte
15

Em um novo repositório, por exemplo, após a $ git init, o diretório .git conterá o arquivo .git / description.

Que se parece com isso:

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

A edição no repositório local não o altera no controle remoto.

mholm815
fonte
A resposta de Alex Brown incluiu a sua.
Yantao Xie
13

Se você quis dizer renomear seu repositório, vá para o seu repositório e clique em "admin" e renomeie.

Depois de ver a caixa vermelha avisando sobre algumas quedas do céu e outras coisas, leia esta pergunta .

Droogans
fonte
12
Pode ajudar outras pessoas a observar que essa é uma sugestão específica do Github e não se aplica ao Git em geral.
founddrama
1
a partir de janeiro de 2013, as instruções do github agora devem ser: (faça login no github), vá para o seu repositório, vá para "Configurações" >> "Opções" e procure um botão Renomear lá. Com relação aos avisos vermelhos sobre coisas ruins acontecendo, os Droogans se vinculam aos outros, então a pergunta ainda é altamente recomendada.
pestófago
12

Para renomear qualquer repositório da sua conta do GitHub:

  1. Vá para o repositório específico que deseja renomear
  2. Navegue até a guia Configurações
  3. Lá, na seção nome do repositório, digite o novo nome que você deseja colocar e clique em Rename
Neha Kumari
fonte
Não é uma pergunta do GitHub, trata-se de git.
Robrecord 31/10/19
10

Se você estiver usando o GitLab ou o GitHub, poderá modificar esses arquivos graficamente.

Usando o GitLab

Vá para as configurações do seu projeto . Lá você pode modificar o nome do projeto e, o mais importante, pode renomear seu repositório (é quando começa a entrar na seção de perigo).

Feito isso, as configurações dos clientes locais devem ser atualizadas usando

git remote set-url origin sshuser@gitlab-url:GROUP/new-project-name.git
avi.elkharrat
fonte
9
  • No lado do servidor, apenas renomeie o repositório com o comando mv, como de costume:

    mv oldName.git newName.git
    
  • Em seguida, no lado do cliente, altere o valor do [remote "origin"]URL para o novo:

    url=example.com/newName.git
    

Funcionou para mim.

Parison
fonte
8

Se você estiver no Eclipse e instalou o Egit, poderá renomear o repositório que contém um projeto, fazendo o seguinte:

1) No Eclipse : Feche todos os projetos que estão no repositório.

2) No sistema de arquivos : Localize o diretório / pasta que contém o repositório.

3) No sistema de arquivos : Renomeie o diretório / pasta que contém o repositório.

4) No sistema de arquivos : Abra o diretório / pasta que contém o repositório e renomeie o diretório / pasta do projeto de qualquer projeto que você deseja renomear para que ele corresponda ao novo nome do projeto. (Isso não é necessário, mas fornece consistência entre o nome do projeto no Eclipse e o diretório / pasta do projeto no repositório.)

5) No Eclipse : Exclua todos os projetos que estão no repositório, mas certifique-se de NÃO marcar a caixa de seleção 'Excluir o conteúdo do sistema de arquivos'. (O projeto não deve mais conter o local correto do conteúdo do sistema de arquivos, para que os dados não pudessem ser excluídos em nenhum caso, mas é melhor prevenir do que remediar.)

6) No Eclipse : No menu, selecione a opção Arquivo | Importar ....

7) No Eclipse : Na caixa de diálogo, abra a pasta 'Git', selecione 'Projetos do Git' e clique em 'Avançar'.

8) No Eclipse : Na caixa de diálogo, selecione 'Local' e clique em 'Avançar'.

9) No Eclipse : Na caixa de diálogo, clique no botão 'Adicionar ...'.

10) No Eclipse : Na caixa de diálogo, verifique se a caixa de seleção ao lado do repositório está marcada e clique em 'Concluir'.

11) No Eclipse : Na caixa de diálogo, selecione o repositório e clique em 'Avançar'.

12) No Eclipse : Na caixa de diálogo, selecione o botão de opção 'Importar projetos existentes', selecione o "Diretório de Trabalho" e clique em "Avançar".

13) No Eclipse : Na caixa de diálogo, marque a caixa de seleção ao lado dos projetos nos quais deseja trabalhar e clique em 'Concluir'.

14) No Eclipse : Renomeie todos os projetos que estão no repositório, se assim o desejar. (Para obter consistência entre o Eclipse e o sistema de arquivos, dê a eles o mesmo nome que o diretório / pasta do projeto dentro do diretório / pasta do repositório.)

Danny Remington - OMS
fonte
+1 (divertido e não surpreso com 14 etapas necessárias para isso no Eclipse, especialmente o 'se você instalou o Egit', implicando mais algumas dezenas de etapas ...)
Jack Wasey em
7

O próprio Git não possui nenhuma disposição para especificar o nome do repositório. O nome do diretório raiz é a única fonte de verdade pertencente ao nome do repositório.

O pensamento.git/description é usado apenas por alguns aplicativos, como o GitWeb .

Ujjwal Singh
fonte
5

Para usuários do Amazon AWS codecommit ,

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

Referência: aqui

Extremo
fonte
4

Para ser simples, basta remover o Projeto Eclipse (não escolher o conteúdo em disco) e, em seguida, reimporte o projeto novamente.

O Eclipse identificará o projeto conectado ao Git e o colocará na visualização em perspectiva do Git.

Ele funciona como um encanto.

Richard
fonte
5
Isso não responde à pergunta original.
Mjarez # 618
Esta resposta é um comentário para Danny Remington - resposta do OMS ?
Peter Mortensen
4

Com o Github como seu controle remoto

Renomeando o repositório remoto no Github

Em relação ao repositório remoto, se você estiver usando o Github ou o Github Enterprise como o local do servidor para salvar / distribuir seu repositório remotamente, você pode simplesmente renomear o repositório diretamente nas configurações de repo.

Na página principal do repositório, a guia Configurações está à direita e o nome do repositório é o primeiro item da página:

insira a descrição da imagem aqui

O Github redirecionará solicitações para o novo URL

Um recurso muito bom no Github quando você renomeia um repositório, é que o Github salva o nome antigo do repositório e todos os URLs relacionados e redireciona o tráfego para os novos URLs . Como seu nome de usuário / organização e o nome do repositório fazem parte do URL, uma renomeação mudará o URL.

Como o Github salva o nome do repositório antigo e redireciona solicitações para os novos URLs, se alguém usar links com base no nome do repositório antigo ao tentar acessar problemas, wiki, estrelas ou seguidores, eles ainda chegarão ao novo local no site do Github. Github também redireciona nível inferior comandos Git gosto git clone, git fetchetc.

Mais informações estão na Ajuda do Github para renomear um repositório

Renomeando o nome do repositório local

Como já mencionado, o "nome" local do seu repositório é normalmente considerado o nome da pasta / diretório raiz, e você pode alterar isso, mover ou copiar a pasta para qualquer local e isso não afetará o repositório.

O Git foi projetado para se preocupar apenas com arquivos dentro da pasta raiz.

LightCC
fonte
"se alguém usar links com base no antigo nome do repositório ... ainda chegará ao novo local no site do Github". Sim, existe esse recurso. O mesmo vale para o BitBucket: community.atlassian.com/t5/Bitbucket-questions/… . Seria bom saber como destruir completamente todas as referências ao nome antigo, porque, no meu entender, não é renomear, mas copiar. Seria bom saber o procedimento correto para a renomeação completa (com a destruição de todas as coisas antigas).
Alexander Samoylov 27/02
@AlexanderSamoylov Estou apenas adivinhando aqui, mas sinceramente duvido que algo seja salvo no formato antigo. O Github deve apenas manter o nome antigo do arquivo reservado e redirecionar qualquer tráfego que aparece no nome antigo para o novo nome. ou seja https://github.com/oldrepo/some_path, apenas redirecionará para https://github.com/newrepo/some_path, para onde tudo foi movido. A única desvantagem é que o nome antigo do repositório é permanentemente reservado, portanto não pode ser reutilizado (também é bom evitar as pessoas que salvaram o URL antigo acessando-o).
LightCC
3

A principal mudança de nome está aqui (img 1), mas também altere readme.md (img 2)

insira a descrição da imagem aqui

insira a descrição da imagem aqui

CINZA
fonte
7
A questão é sobre git, e não github.
Yantao Xie
não renomeou, assim
Manjitha teshara 12/08
0

Abra o repositório git no navegador, acesse "Configurações", você pode ver o botão Renomear.

Insira o novo "Nome do Repositório" e clique no botão "Renomear".

bshr
fonte
0

Você tentou alterar o nome do projeto package.jsone executar o comando git initpara reinicializar o Git existente?

Seu histórico existente do Git ainda existirá.

priyabagus
fonte
-2

Isso funcionou para mim no Windows 10, através da linha de comando:

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

De como renomear uma ramificação Git local e remota

Este era um repositório apenas local (não em nenhum controle remoto).

emery.noel
fonte