Github "fatal: origem remota já existe"

466

Estou tentando seguir o tutorial do Michael Rails, mas encontrei um erro.

Eu me inscrevi no Github e emiti uma nova chave SSH e criei um novo repositório. Mas quando entro na próxima linha no terminal, recebo o seguinte erro:

Parkers-MacBook-Pro:.ssh ppreyer$ git remote add origin [email protected]:ppreyer/first_app.git
fatal: remote origin already exists.

Só queria saber se alguém já se deparou com este problema?

ppreyer
fonte
Se você ainda criou o repositório git, consulte o .git/configarquivo para ver se a origem ainda não está declarada.
Denys Séguret
3
Eu estava enfrentando o mesmo problema e usei o comando "git remote rm origin" e use o comando git remote add origin URL.
Akhzar Nazir
@AkhzarNazir, adicione isso como resposta. Funcionou para mim.
Pamela Sillah 19/04

Respostas:

896

TL; DR, você deve apenas atualizar o controle remoto existente:

$ git remote set-url origin [email protected]:ppreyer/first_app.git

Versão longa:

Como a mensagem de erro indica, já existe um controle remoto configurado com o mesmo nome. Portanto, você pode adicionar o novo controle remoto com um nome diferente ou atualizar o existente, caso não precise:

Para adicionar um novo controle remoto, chamado, por exemplo, em githubvez de origin(que obviamente já existe no seu sistema), faça o seguinte:

$ git remote add github [email protected]:ppreyer/first_app.git

Lembre-se, porém, em todo lugar do tutorial que você vê "origem", você deve substituí-lo por "github" . Por exemplo $ git push origin master, agora deve ser $ git push github master.

No entanto, se você quiser ver o que é o originque já existe, poderá fazer a $ git remote -v. Se você acha que isso ocorre por algum erro, é possível atualizá-lo da seguinte maneira:

$ git remote set-url origin [email protected]:ppreyer/first_app.git
Agis
fonte
5
Por que a origem existiria em seu novo repositório? Ele deve corrigir o problema (garantir, por exemplo, que a origem seja o alias correto para o github), em vez de criar um novo alias que ele precisaria lembrar.
Denys Séguret
1
Ok, funcionou, mas quando vou para a próxima etapa e insiro o git push -u origin master no terminal, recebo o seguinte erro: ERRO: Repositório não encontrado. fatal: A extremidade remota desligou inesperadamente O que isso significa?
precisa saber é o seguinte
O que git remote -vproduz? Além disso, você pode tentar git push origin master?
Agis
16
git remote rm originnão funcionou muito bem. Ele produziu erro: Não foi possível remover a seção de configuração 'remote.origin' #
Andrew Savinykh
20
@zespri: usegit remote set-url --add origin [email protected]/username/repo.git
eduncan911
342

Em resumo,

git remote rm origin
git remote add origin [email protected]:username/myapp.git

Trabalhou!

Felicidades!

Manish Shrivastava
fonte
alguém pode explicar isso? origem remota do git rm
Kick Buttowski
1
@KickButtowski rm faz referência ao comando remove usado em * nix. Portanto, este comando diz ao git para "remover" os detalhes do servidor remoto chamado "origem".
Rob
Não é necessário fazer isso em duas etapas quando você pode fazer isso em 1. Veja minha resposta.
Agis
37

Para aqueles que enfrentam o erro sempre tão comum "fatal: origem remota já existe" ou quando tentam remover a origem e obtêm "erro: não foi possível remover a seção de configuração remote.origin", o que você precisa fazer é: defina a origem manualmente.

O POSH ~ Git do Windows para Windows PowerShell (e o aplicativo GitHub para Windows) tem um problema com isso.

Eu me deparei com isso, como muitas vezes, novamente ao configurar meu polvo. Então, aqui está como eu consegui funcionar.

Primeiro, verifique seus controles remotos:

C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress       https://github.com/imathis/octopress.git (fetch)
octopress       https://github.com/imathis/octopress.git (push)
origin

Você primeiro notará que minha origem não tem URL. Qualquer tentativa de removê-lo, renomeá-lo, etc. tudo falha.

Então, altere o URL manualmente:

git remote set-url --add origin https://github.com/eduncan911/eduncan911.github.io.git

Em seguida, você pode confirmar que funcionou executando git remote -vnovamente:

C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress       https://github.com/imathis/octopress.git (fetch)
octopress       https://github.com/imathis/octopress.git (push)
origin  https://github.com/eduncan911/eduncan911.github.io.git (fetch)
origin  https://github.com/eduncan911/eduncan911.github.io.git (push)

Isso corrigiu dezenas de repositórios git com os quais tive problemas, GitHub, BitBucket GitLab, etc.

eduncan911
fonte
2
Isso funcionou para mim. Obrigado @ eduncan911. As instruções do github declaram para executar um "git init" para criar um novo repositório na linha de comando. Isso cria uma origem remota sem URL usando essa interface PS.
mikekidder
Ah, sim, isso é outro problema e por que você tem que fazer isso. +1 Talvez devêssemos reportar isso ao POSH Git no github.
eduncan911
Como encontro o URL ao usar o gitlab?
Madmenyo 26/09/14
1
@MennoGouw Eu acho que é uma pergunta fora de tópico; mas, geralmente, está no painel / casa do Repo. Também está nas configurações do projeto.
precisa saber é o seguinte
36

Você pode ver a quais repositórios remotos você está configurado para se conectar via

git remote -v

Isso retornará uma lista neste formato:

origin  [email protected]:github/git-reference.git (fetch)
origin  [email protected]:github/git-reference.git (push)

Isso pode ajudá-lo a descobrir o que a 'origem' original apontou.

Se você deseja manter a conexão remota que vê com o -v, mas ainda deseja seguir o tutorial do Rails sem precisar se lembrar do 'github' (ou de algum outro nome) para o repositório do tutorial, você pode renomear seu outro repositório com o comando comando:

git remote rename [current name] [new name]

como em:

git remote rename origin oldrepo

Você deve poder retomar seu tutorial.

Mark Semsel
fonte
35

Primeiro faça um:

git remote rm origin

então

git remote add origin https://github.com/your_user/your_app.git

e pronto! Trabalhou para mim!

Obed Castillo
fonte
Por que remover a origem? Existe alguma maneira de adicionarmos algo em vez de origem?
Abhils
28

No caso especial em que você está criando um novo repositório a partir de um repositório antigo que você usou como modelo (não faça isso se este não for o seu caso). Apague completamente os arquivos git do repositório antigo para poder iniciar um novo:

rm -rf .git

E, em seguida, reinicie um novo repositório git, como de costume:

git init
git add whatever.wvr ("git add --all" if you want to add all files)
git commit -m "first commit"
git remote add origin [email protected]:ppreyer/first_app.git
git push -u origin master
Wilmer E. Henao
fonte
13

Se você precisar verificar quais repositórios remotos você se conectou aos repositórios locais, há um cmd:

git remote -v

Agora, se você deseja remover o repositório remoto (por exemplo, origem), o que você pode fazer é:

git remote rm origin
Samarth Shah
fonte
Parece mais um comentário do que uma resposta. Com um pouco mais de rep, você poderá postar comentários .
Nathan Tuggy
@ NathanTuggy Não, é uma resposta completa e, na minha humilde opinião, mais direta do que a mais popular neste tópico.
daOnlyBG
@daOnlyBG: Não tenho certeza de como era a resposta quando a vi, pois isso foi antes dos comentários serem bloqueados em períodos de carência (e, portanto, pode ter sido silenciosamente editada). Mas agora, está razoavelmente completo, eu concordo.
Nathan Tuggy
@ NathanTuggy Woah, não sabia que havia edições silenciosas uma vez. Isso explica.
daOnlyBG
7

Essa mensagem de erro indica que você já possui um controle remoto no diretório git. Se você estiver satisfeito com esse controle remoto, poderá enviar seu código por push. Caso contrário, ou se você não puder pressionar apenas:

git remote remove origin
git remote add origin [email protected]:ppreyer/first_app.git

Voilà!

MrHanachoo
fonte
7

O conceito de remoteé simplesmente a URL do seu repositório remoto.

O originé um alias apontando para esse URL. Então, em vez de escrever a URL inteira toda vez que queremos enviar algo para o nosso repositório, usamos esse alias e executamos:

git push -u origin master

Dizendo para git para o pushnosso código do nosso ramo principal local para o repositório de origem remoto .

Sempre que clonamos um repositório , o git cria esse alias para nós por padrão. Além disso, sempre que criamos um novo repositório , apenas o criamos.

Seja qual for o caso, sempre podemos mudar esse nome para o que quisermos, executando o seguinte:

git remote rename [current-name] [new-name]

Como ele é armazenado no lado do cliente do aplicativo git (em nossa máquina), a alteração não afetará nada em nosso processo de desenvolvimento, nem em nosso repositório remoto. Lembre-se, é apenas um nome apontando para um endereço .

A única coisa que muda aqui ao renomear o alias é que temos que declarar esse novo nome toda vez que enviamos algo para o nosso repositório.

git push -u my-remote-alias master

Obviamente, um único nome não pode apontar para dois endereços diferentes. É por isso que você recebe essa mensagem de erro. Já existe um alias nomeado originem sua máquina local. Para ver quantos aliases você tem e quais são eles, você pode iniciar este comando:

git remote -v

Isso mostrará todos os aliases que você possui, além dos URLs correspondentes.

Você também pode removê-los se quiser executar o seguinte:

git remote rm my-remote-alias

Então, em resumo:

  • descubra o que você já tem,
  • remova ou renomeie-os,
  • adicione seus novos aliases.

Feliz codificação.

Kobayashi
fonte
5

se você já adiciona um projeto para outro armazenamento, como o upload para o github e o upload para o bitbucket, ele mostra esse tipo de erro.

Como remover o erro: exclua o arquivo git-hub no seu projeto e repita as seguintes etapas ...

git init       
git remote add origin [email protected]:Yourname/firstdemotry.git  
git add -A  
git commit -m 'Message'  
git push -u origin master  
Chaudhary Prakash
fonte
5

Isso também pode acontecer se você executar o comando no diretório sem o git inicializado. Se for esse o caso, execute primeiro:

git init
Jan Pi
fonte
4

para usar git você tem que ser

raiz

caso contrário, use sudo

para remover a origem:

origem remota git remote

para adicionar origem:

origem remota git remote http: // giturl

karan
fonte
3
  • $ git remote add origin [email protected]:abc/backend/abc.git

    Nesse comando, a origem não faz parte do comando, é apenas o nome do seu repositório remoto. Você pode usar qualquer nome que desejar.

    • Primeiro, você pode verificar se o que ele contém usando o comando abaixo

    $ git remote -v

    Isso lhe dará resultados como este origin [email protected]:abc/backend/abc.git (fetch) origin [email protected]:abc/backend/abc.git (push) origin1 [email protected]:abc/backend/abc.git (fetch) origin1 [email protected]:abc/backend/abc.git (push)

    se ele contiver o caminho do repositório remoto, você poderá enviá-lo diretamente sem adicionar a origem novamente

    • Se não estiver contando o caminho do repositório remoto

    Em seguida, você pode adicionar uma nova origem com nome diferente e usá-la para empurrar como $ git remote add origin101 [email protected]:abc/backend/abc.git

    Ou você pode renomear o nome da origem existente, adicionar sua origem

    git remote rename origin destination

    fogo abaixo comando novamente

    $ git remote -v

    destination [email protected]:abc/backend/abc.git (fetch) destination [email protected]:abc/backend/abc.git (push)

    Ele mudará seu nome de repositório existente para que você possa usar esse nome de origem

    Ou você pode simplesmente remover sua origem existente e adicioná-la

    git remote rm destination

Foram Sojitra
fonte
3

Tente isto

  • cd existente_repo
  • git remote rename origin old-origin
Sreeraj VR
fonte
Bro obrigado, esta é a única coisa que funcionou para mim.
Akshat Tamrakar 26/03
2

enfrentando o mesmo erro ao adicionar repositório ao git hun usando o git bash no Windows

 git remote add origin https://github.com/axaysushir/netflix_page_clone.git

fatal: origem remota já existe.

fatal: remote origin already exists.

 ! [rejected]        master -> master (fetch first)

erro: falha ao enviar algumas referências para ' https://github.com/axaysushir/meditation_app_using_js.git '

Atualize o repositório seguindo o comando

$ git remote set-url origin https://github.com/axaysushir/netflix_page_clone.git

adicione o repositório usando o git remote add github em vez do git remote add origin

$ git remote add github https://github.com/axaysushir/netflix_page_clone.git

E então escreva o seguinte comando em vez do git push origin master: isso fará o upload do seu repositório no github

$ git push github master
akshay_sushir
fonte
2

atualize a origem, se ela já estiver usando este comando

git remote set-url origin https://github.com/SriramUmapathy/ReduxLearning.git
Sriram
fonte
0

Primeira verificação Para ver quantos aliases você tem e quais são eles, você pode iniciar este comando git remote -v

Então veja em qual repositório você está e tente o git remote set-url --add [Então seu link do repositpory] git push -u origin master

Sarthak Dalabehera
fonte
0

No bash, pelo menos, podemos forçar o valor de retorno do código de saída do comando para 0

Você pode remover o controle remoto antigo e adicioná-lo novamente

git remote remove $1 || true
git remote add $1 $2
motia
fonte
0

Caso você queira fazer via GUI, faça o seguinte:

  1. Verifique se "arquivos ocultos" estão visíveis na sua pasta do projeto
  2. Vá para o diretório .git
  3. Edite o arquivo url no arquivo config.txt e salve o arquivo!
inspiredMichael
fonte