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 git@github.com:ppreyer/first_app.git
fatal: remote origin already exists.

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


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 git@github.com: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 git@github.com: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 git@github.com:ppreyer/first_app.git

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 git@github.com/username/repo.git
eduncan911

342

Em resumo,

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

Trabalhou!

Felicidades!


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.


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  git@github.com:github/git-reference.git (fetch)
origin  git@github.com: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.


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!


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 git@github.com:ppreyer/first_app.git
git push -u origin master

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

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 git@github.com:ppreyer/first_app.git

Voilà!


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.


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 git@bitbucket.org:Yourname/firstdemotry.git  
git add -A  
git commit -m 'Message'  
git push -u origin master  

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

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


3
  • $ git remote add origin git@gitlab.com: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 git@gitlab.com:abc/backend/abc.git (fetch) origin git@gitlab.com:abc/backend/abc.git (push) origin1 git@gitlab.com:abc/backend/abc.git (fetch) origin1 git@gitlab.com: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 git@gitlab.com: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 git@gitlab.com:abc/backend/abc.git (fetch) destination git@gitlab.com: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



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

2

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

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

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


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

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!
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.