A origem remota já existe no 'git push' para um novo repositório


548

Eu tenho meu projeto no GitHub em algum local git@github.com:myname/oldrep.git,.

Agora eu quero enviar todo o meu código para um novo repositório em outro local git@github.com:newname/newrep.git,.

Eu usei o comando:

git remote add origin git@github.com:myname/oldrep.git

mas estou recebendo isso:

fatal: origem remota já existe.


6
Dê a saída do comando $> git show de remoto -v
sykora


Uma boa maneira é usar "importar de outro repositório" na parte inferior do seu novo repositório criado, se você souber o URL do antigo.
JW.ZG

Uma pergunta semelhante foi feita aqui: stackoverflow.com/questions/2432764/…
jciloa

1
Se você deseja manter o controle remoto original, pode simplesmente usar um nome diferente git remote add origin2 ...., mas se precisar pressionar apenas uma vez sem modificar a configuração de repo, basta fazê-lo git push git@github.com:user/another-project.git master:master.
Ccpizza

Respostas:


870

Você está recebendo este erro porque "origem" não está disponível. "origem" é uma convenção que não faz parte do comando. "origem" é o nome local do repositório remoto.

Por exemplo, você também pode escrever:

git remote add myorigin git@github.com:myname/oldrep.git  
git remote add testtest git@github.com:myname/oldrep.git

Veja o manual:

http://www.kernel.org/pub/software/scm/git/docs/git-remote.html

Para remover um repositório remoto, digite:

git remote rm origin

Novamente "origem" é o nome do repositório remoto, se você deseja remover o controle remoto "upstream":

git remote rm upstream

8
"git remote rm origin" não funcionou comigo, se não funcionar, tente verificar com "git remote -v" isso mostrará se sua origem tem um URL definido, se não é provável que você fiz o init localmente e está tentando empurrá-lo para longe, e cometeu um passo em falso como eu). Em seguida, siga a resposta de Robinh: origem remota set-url git git@github.com: nome de usuário / projectname.git
Clarence Liu

1
verifique esta resposta para forçar o URL.
srodriguex

"git remote rm origin" funcionou como um encanto, maravilhoso! :) puhh, eu sou novo na terminologia do git, por isso foi uma pesquisa maior, mas sua resposta me ajudou muito. :) obrigado!
Martin Pfeffer

3
git push -u origin master --force
Ronnie Royston

--force é solução!
criador

260

As soluções anteriores parecem ignorar a origem e sugerem apenas usar outro nome. Quando você quiser apenas usar git push origin, continue lendo.

O problema aparece porque uma ordem incorreta da configuração do Git é seguida. Você já deve ter adicionado uma 'origem git' à sua configuração .git.

Você pode alterar a origem remota na sua configuração do Git com a seguinte linha:

git remote set-url origin git@github.com:username/projectname.git

Este comando define uma nova URL para o repositório Git para o qual você deseja enviar por push. Importante é preencher o seu próprio nome de usuário e projectname


7
Obrigado, exatamente o que eu tinha que fazer :) #
winkbrace 27/03

Isso fiexd para mim. Mas o que realmente me ajudou nesse problema foi porque eu uso o portableGit instalado com o Gihub para Windows. Encontrei a solução aqui
PerseP

Ótimo! Eu precisava mudar meu repositório gitorioso para repositório git lab e essa solução foi perfeita! Obrigado!
Marcelo dos Santos

A mesma situação do OP, e eu precisava fazer isso e depois a solução do @ MrHus.
Sean the Bean

4
Esta é a melhor resposta IMHO
kratos

83

Se você nomeou por engano o nome local como "origem", remova-o com o seguinte:

git remote rm origin

O que significa "equivocadamente chamado o nome local como 'origem'" realmente significa que você pode explicar em detalhes @Ozgur?
Yuan Wen

1
Isso pode significar que você adicionou a origem remota que não aponta para um repositório git. Portanto, se você planeja enviar todas as alterações para o mestre, o git se queixará dizendo que a origem remota não é um repositório do git.
Gautham Honnavara

22

MÉTODO1->

Como a origem já existe, remova-a.

git remote rm origin
git remote add origin https://github.com/USERNAME/REPOSITORY.git

MÉTODO2->

Também é possível alterar a URL do repositório remoto existente por -> git remote set-url

Se você estiver atualizando para usar HTTPS

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

Se você estiver atualizando para usar o SSH

git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

Se tentar atualizar um controle remoto que não existe, você receberá um erro. Portanto, tenha cuidado com isso.

MÉTODO3->

Use o comando git remote rename para renomear um controle remoto existente. Um nome remoto existente, por exemplo, origem.

git remote rename origin startpoint
# Change remote name from 'origin' to 'startpoint'

Para verificar o novo nome do controle remoto->

git remote -v

Se novo no Git, tente este tutorial->

Experimente o GIT TUTORIAL


1
Muito obrigado. Fui baixado, outra pessoa git e também queria cloná-lo no meu GitHub. Finalmente, sou bem-sucedido usando seu primeiro método.
Naimur Hasan

17

Você pode simplesmente editar seu arquivo de configuração em um editor de texto.

No ~/.gitconfigvocê precisa colocar algo como o seguinte:

[user]
        name  = Uzumaki Naruto
        email = myname@example.com

[github]
        user = myname
        token = ff44ff8da195fee471eed6543b53f1ff

No oldrep/.git/configarquivo (no arquivo de configuração do seu repositório):

[remote "github"]
        url = git@github.com:myname/oldrep.git
        push  = +refs/heads/*:refs/heads/*
        push  = +refs/tags/*:refs/tags/*

Se houver uma seção remota no arquivo de configuração do seu repositório e a URL corresponder, você precisará apenas adicionar a configuração push. Se você usar um URL público para buscar, poderá inseri-lo no push como 'pushurl' (aviso: isso requer a versão 1.6.4 do Git recém-lançada).


10
  1. git remote rm origin

  2. git remote -v Não exibirá nenhum nome de repositório

  3. git remote add origin git@github.com:username/myapp.git

  4. git push origin master Ele iniciará o processo e criará a nova ramificação. Você pode ver que seu trabalho foi enviado ao github.


8

Você não precisa remover o controle remoto "origem" existente, basta usar um nome diferente de "origem" para o seu add remoto, por exemplo,

git remote adicione github git@github.com: meu nome / oldrep.git


8
git remote rm origin
git remote add origin git@github.com:username/myapp.git

6

Eu tenho o mesmo problema e aqui está como o corrigi depois de fazer uma pesquisa:

  1. Baixe o GitHub para Windows ou use algo semelhante, que inclui um shell
  2. Abra o Git Shellmenu de tarefas. Isso abrirá um shell de energia, incluindo comandos Git.
  3. No shell, mude para o seu repositório antigo, por exemplo cd C:\path\to\old\repository
  4. Mostrar status do repositório antigo

  5. Agora remova o repositório remoto do repositório local usando

    git remote rm origin
    
  6. Verifique novamente com a etapa 4. Ele deve aparecer originapenas, em vez do caminho de busca e envio.

  7. Agora que seu repositório remoto antigo está desconectado, você pode adicionar o novo repositório remoto. Use o seguinte para conectar-se ao seu novo repositório.

Nota: Caso esteja usando o Bitbucket, você deve primeiro criar um projeto no Bitbucket. Após a criação, o Bitbucket exibirá todos os comandos Git necessários para enviar seu repositório para um controle remoto, semelhante ao próximo snippet de código. No entanto, isso funciona para outros repositórios também.

cd /path/to/my/repo # If haven't done yet
git remote add mynewrepo https://user@bitbucket.org/team-or-user-name/myproject.git
git push -u mynewrepo master # To push changes for the first time

É isso aí.


5

Eu tive o mesmo problema quando configurei pela primeira vez usando o Bitbucket .

Meu problema era que eu precisava alterar a origem da palavra para algo autodefinido. Eu usei o nome do aplicativo. Assim:

git remote add AppName https://someone@bitbucket.org/somewhere/something.git

4

Você deve alterar o nome do repositório remoto para outra coisa.

git remote add origin git@github.com:myname/oldrep.git

para

git remote add neworigin git@github.com:myname/oldrep.git

Eu acho que isso deve funcionar.

Sim, são para o init do repositório e para adicionar um novo controle remoto. Apenas com uma mudança de nome.


3

Você também pode alterar o nome do repositório que deseja enviar no arquivo REPOHOME / .git / config

(em que REPOHOME é o caminho para o clone local do repositório).


1

Isso também pode acontecer quando você se esquece de fazer um primeiro commit.


0

Você precisa verificar origine adicionar se não existir.

if ! git config remote.origin.url >/dev/null; then
    git remote add origin git@github.com:john/doe.git
fi

Crie um arquivo check.sh, cole o script, atualize o URL do repositório git e execute ./check.sh.


0

Passo 1

git remote rm origin

Passo 2

git remote add origin enter_your_repository_url

Exemplo:

git remote add origin https://github.com/my_username/repository_name.git

-1

Primeiro, escreva esta linha de código para o controle remoto removido:

$ git remote rm origin

e escreva esta linha:

$ git remote add origin https://github.com/khadim321/React-Form.git

Está funcionando corretamente.


por favor, tente fornecer mais explicações, a fim de fornecer mais valor à sua resposta
Zeina

Não tenho certeza se isso ajuda alguém a adicionar um de seus repositórios do github como origem remota. Esta pergunta já foi respondida algumas vezes. Verifique a outra pergunta antes de criar uma nova com uma qualidade tão baixa.
thmspl 9/01

-1

se você deseja criar um novo repositório com o mesmo projeto dentro do github e o Remote anterior não permitir, nesse caso, primeiro exclua esse repositório no github, basta excluir a pasta .git C: \ Users \ Shiva \ AndroidStudioProjects \ yourprojectname \ .git exclua essa pasta (certifique-se de clicar no arquivo oculto porque esta pasta está oculta)

Também clique no sinal de menos (botão Remover) do android studio Setting-> VersionControl clique aqui para remover o controle de versão do android E então você poderá criar um novo repositório.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.