Pergunta sobre github-for-mac, terminal, github – Github "fatal: origem remota já existe"

362

Estou tentando acompanharTutorial de Rails de Michael Hartl mas eu me deparei com um erro.

Eu me inscrevi no Github, criei uma nova chave SSH e criei um novo repositório. Mas quando eu entro na próxima linha no terminal eu 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?

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
Se você ainda criou o repositório git, veja o.git/config arquivo para ver se a origem ainda não está declarada. Denys Séguret

Sua resposta

16   a resposta
7

remote é simplesmente o URL do seu repositório remoto.

oorigin é umalias apontando para esse URL. Então, em vez de escrever toda a URL toda vez que quisermos enviar algo para o nosso repositório, apenas usamos esse alias e executamos:

git push -u origin master

Dizendo para git topush nosso código do nossolocalmestre ramo aocontrolo remotoorigem repositório.

Sempre queclone um repositório, git cria esse alias para nós por padrão. Também sempre que criamos umnovo repositórionós apenas criamos o nosso eu.

Seja qual for o caso, podemos sempre mudar este nome para qualquer coisa que gostemos, executando isto:

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

Uma vez que é armazenado no lado do cliente dogit aplicação (em nossa máquina) alterá-lo não afetará nada em nosso processo de desenvolvimento, nem em nosso repositório remoto. Lembre-se, é apenas umnome apontando para umendereço.

A única coisa que muda aqui, renomeando o alias, é que temos que declarar issonovo nome toda vez que colocamos algo no 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 chamadoorigin na 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ê tem mais os URLs correspondentes.

Você pode removê-los também, se quiser executar isto:

git remote rm my-remote-alias
Então, em resumo:descubra o que você já temremover ou renomeá-losadicione seus novos aliases.

Codificação feliz.

1

$ git remote add origin [email protected]:abc/backend/abc.git

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

Primeiro você pode verificar o que contém usando o comando abaixo

$ git remote -v

Vai lhe dar resultado assimorigin [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 seu caminho de repositório remoto, você poderá enviar diretamente para ele sem adicionar origem novamente

Se não estiver contaneando seu caminho de repositório remoto

Então você pode adicionar nova origem com nome diferente e usar isso para empurrar como$ git remote add origin101 [email protected]:abc/backend/abc.git

Ou você pode renomear o nome de origem existente adicionar sua origem

git remote rename origin destination

fogo abaixo do comando novamente

$ git remote -v

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

Isso 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 adicionar sua origem

git remote rm destination

27

Primeiro faça um:

git remote rm origin

então

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

e voila! Trabalhou para mim!

Por que remover a origem? Existe alguma maneira de adicionarmos algo em vez de origem? Abhils
5

o git inicializado. Se esse for o caso, execute primeiro:

git init
1

cd existing_repog, ele renomeia a origem de origem antiga
717

DR você deve apenas atualizar o 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. Assim, você pode adicionar o novo controle remoto com um nome diferente ou atualizar o existente se não precisar dele:

Para adicionar um novo controle remoto, chamado por exemplogithub ao invés deorigin (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 todos os lugares do tutorial que você vê"origem" você deve substituí-lo por"github". Por exemplo$ git push origin master deve agora ser$ git push github master.

No entanto, se você quiser ver o queorigin que já existe é, você pode fazer um$ git remote -v. Se você acha que isso está lá por algum erro, você pode atualizá-lo assim:

$ git remote set-url origin [email protected]:ppreyer/first_app.git
@zespri: usegit remote set-url --add origin [email protected]/username/repo.git eduncan911
Ok, isso funcionou, mas quando eu vou para a próxima etapa e digito git push -u origem mestre no terminal eu recebo o seguinte erro: ERRO: Repositório não encontrado. fatal: O final remoto desligou inesperadamente O que isso significa? ppreyer
Por que a origem existe em seu novo repositório? Ele deve corrigir o problema (assegurando, por exemplo, que a origem é o alias correto para o github) em vez de criar um novo alias que ele teria que lembrar. Denys Séguret
git remote rm origin não funcionou bem. Produziuerro: não foi possível remover a seção de configuração 'remote.origin' Andrew Savinykh
O quegit remote -v saídas? Além disso, você pode tentargit push origin master? Agis
21

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 que você possa iniciar um novo:

rm -rf .git

E então 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
4

como você faz o upload para o github e depois faz o upload para o bitbucket, ele mostra esse tipo de erro.

Como remover o erro: excluir o arquivo git-hub em 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  
0

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

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

git remote remove $1 || true
git remote add $1 $2
36

fatal: origem remota já existe.", Ou ao tentar remover a origem e você recebe "erro: não foi possível remover a seção de configuração remote.origin", o que você precisa fazer é definir a origem manualmente.

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

Eu corri para isso, como faço com tanta frequência, novamente ao configurar meu octopress. Então, aqui está como eu consegui trabalhar.

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 possui url. Qualquer tentativa de removê-lo, renomeá-lo, etc, tudo falhará.

Então, mude o URL manualmente:

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

Então você pode confirmar que funcionou executandogit remote -v novamente:

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 git repos com os quais tive problemas, GitHub, BitBucket GitLab, etc.

sim, isso ajudou. Darius Miliauskas
Ah, essa é outra pegadinha e por que você tem que fazer isso. Talvez devamos reportar isso para o POSH Git no github. eduncan911
@ MennoGouw Eu acho que é uma questão fora do tópico; mas, geralmente, está no painel do Repo / home. Também está nas configurações do projeto. eduncan911
Isso funcionou para mim. Obrigado @ eduncan911. As instruções do github dizem para fazer um "git init" para criar um novo repositório na linha de comando. Isso cria um remoto de origem sem URL usando essa interface PS. mikekidder
Como faço para encontrar o URL ao usar o gitlab? Madmenyo
6

diretório git. Se você está satisfeito com o controle remoto, você pode enviar seu código. Se não, ou se você não pode empurrar apenas:

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

Voilà!

265

Em resumo,

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

Trabalhou!

Felicidades!

@KickButtowski rm é uma referência ao comando remove usado no * nix. Portanto, este comando diz ao git para "remover" os detalhes do servidor remoto chamado "origin". rob
Alguém pode explicar isso? origem rem remota do git Kick Buttowski
Não há necessidade de fazer isso em 2 etapas quando você pode fazê-lo em 1. Veja minha resposta. Agis
0

você pode iniciar este comando git remote -v

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

32

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

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

git remote rename [current name] [new name]

como em:

git remote rename origin oldrepo

Você deve então poder retomar seu tutorial.

11

m seus repositórios locais, existe um cmd:

git remote -v

Agora, se você quiser remover o repositório remoto (digamos, origem), então o que você pode fazer é:

git remote rm origin
@daOnlyBG: Não sei ao certo como foi a resposta quando a vi, já que os comentários estavam bloqueados nos períodos de carência (e, portanto, podem ter sido editados silenciosamente). Mas agora, está razoavelmente completo, eu concordo. 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
@NathanTuggy Woah, não sabia que havia edições silenciosas uma vez. Isso explica. daOnlyBG
Isso parece mais um comentário do que uma resposta. Com um pouco mais de repvocê poderá postar comentários. Nathan Tuggy
3

raiz

se não, então use o sudo

para remover a origem:

git remote remove origem

para adicionar origem:

git remote add originhttp: // giturl

Perguntas relacionadas