Github "fatal: el origen remoto ya existe"


466

Estoy tratando de seguir el tutorial de Rails de Michael Hartl pero me he encontrado con un error.

Me inscribí en Github y emití una nueva clave SSH e hice un nuevo repositorio. Pero cuando ingreso la siguiente línea en la terminal me sale el siguiente error:

Parkers-MacBook-Pro:.ssh ppreyer$ git remote add origin git@github.com:ppreyer/first_app.git
fatal: remote origin already exists.

¿Me preguntaba si alguien más se ha encontrado con este problema?


Si aún creó el repositorio git, mire el .git/configarchivo para ver si el origen aún no se ha declarado.
Denys Séguret

3
Estaba enfrentando el mismo problema y usé el comando "git remote rm origin" y luego usé el comando git remote add origin URL.
Akhzar Nazir

@AkhzarNazir por favor agregue esto como respuesta. Funcionó para mi.
Pamela Sillah

Respuestas:


896

TL; DR solo debe actualizar el control remoto existente:

$ git remote set-url origin git@github.com:ppreyer/first_app.git

Versión larga:

Como indica el mensaje de error, ya hay un control remoto configurado con el mismo nombre. Por lo tanto, puede agregar el nuevo control remoto con un nombre diferente o actualizar el existente si no lo necesita:

Para agregar un nuevo control remoto, llamado por ejemplo en githublugar de origin(que obviamente ya existe en su sistema), haga lo siguiente:

$ git remote add github git@github.com:ppreyer/first_app.git

Sin embargo, recuerde que en todas partes del tutorial verá "origen" , debe reemplazarlo con "github" . Por ejemplo $ git push origin master, ahora debería ser $ git push github master.

Sin embargo, si quieres ver qué es lo que originya existe, puedes hacer una $ git remote -v. Si crees que esto está ahí por algún error, puedes actualizarlo así:

$ git remote set-url origin git@github.com:ppreyer/first_app.git

55
¿Por qué existiría el origen en su nuevo repositorio? Debería solucionar el problema (asegurándose, por ejemplo, que el origen sea el alias correcto de github) en lugar de crear un nuevo alias que debería recordar.
Denys Séguret

1
Ok, eso funcionó, pero luego, cuando paso al siguiente paso e ingreso git push -u origin master en el terminal, aparece el siguiente error: ERROR: no se encontró el repositorio. fatal: el extremo remoto colgó inesperadamente ¿Qué significa eso?
ppreyer

¿Qué significa git remote -vsalidas? Además, ¿puedes probar git push origin master?
Agis

16
git remote rm originno funcionó del todo. Se produjo un error: no se pudo eliminar la sección de configuración 'remote.origin'
Andrew Savinykh

20
@zespri: usegit remote set-url --add origin git@github.com/username/repo.git
eduncan911

342

En breve,

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

Trabajó !

¡Salud!


¿Alguien puede explicar esto? git remote rm origin
Kick Buttowski

1
@KickButtowski rm hace referencia al comando de eliminación utilizado en * nix. Entonces, este comando le dice a git que "elimine" los detalles del servidor remoto llamados "origen".
robar

No es necesario hacer esto en 2 pasos cuando puede hacerlo en 1. Vea mi respuesta.
Agis

37

Para aquellos de ustedes que se encuentran con el error tan común "fatal: el origen remoto ya existe", o cuando intentan eliminar el origen y obtienen "error: no se pudo eliminar la sección de configuración remote.origin", lo que deben hacer es Establecer el origen manualmente.

POSH ~ Git de Windows para Windows PowerShell (y la aplicación GitHub para Windows) tiene un problema con esto.

Me encontré con esto, como lo hago a menudo, nuevamente cuando configuré mi pulpo. Entonces, así es como lo hice funcionar.

Primero, revisa tus 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

Primero notarás que mi origen no tiene URL. Cualquier intento de eliminarlo, cambiarle el nombre, etc. todo falla.

Entonces, cambie la url manualmente:

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

Luego puede confirmar que funcionó ejecutando git remote -vnuevamente:

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)

Esto ha solucionado docenas de repositorios de git con los que he tenido problemas, GitHub, BitBucket GitLab, etc.


2
Esto funcionó para mí. Gracias @ eduncan911. Las instrucciones de github indican hacer un "git init" para crear un nuevo repositorio en la línea de comando. Esto crea un origen remoto sin URL usando esa interfaz PS.
mikekidder

Ah sí, ese es otro problema y por qué tienes que hacer esto. +1 Tal vez deberíamos informar esto a POSH Git en github.
eduncan911

¿Cómo encuentro la url cuando uso gitlab?
Madmenyo

1
@MennoGouw Creo que es una pregunta fuera de tema; pero, por lo general, está en el tablero / hogar del Repo. También está en la configuración del proyecto también.
eduncan911

36

Puede ver a qué repositorios remotos está configurado para conectarse a través de

git remote -v

Eso devolverá una lista en este formato:

origin  git@github.com:github/git-reference.git (fetch)
origin  git@github.com:github/git-reference.git (push)

Eso podría ayudarlo a descubrir a qué apuntaba el 'origen' original.

Si desea mantener la conexión remota que ve con -v, pero aún desea seguir el tutorial de Rails sin tener que recordar 'github' (o algún otro nombre) para el repositorio de su tutorial, puede cambiar el nombre de su otro repositorio con el mando:

git remote rename [current name] [new name]

como en:

git remote rename origin oldrepo

Entonces deberías poder reanudar tu tutorial.


35

Primero haz un:

git remote rm origin

entonces

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

¡y voilá! ¡Trabajó para mi!


¿Por qué eliminar el origen? ¿Hay alguna forma de agregar algo en lugar de origen?
Abhils

28

En el caso especial de que esté creando un nuevo repositorio a partir de un antiguo repositorio que utilizó como plantilla (no haga esto si este no es su caso). Borre completamente los archivos git del antiguo repositorio para que pueda comenzar uno nuevo:

rm -rf .git

Y luego reinicie un nuevo repositorio git como de costumbre:

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

Si necesita verificar qué repositorios remotos ha conectado con sus repositorios locales, hay un cmd:

git remote -v

Ahora, si desea eliminar el repositorio remoto (por ejemplo, origen), lo que puede hacer es:

git remote rm origin

Esto se parece más a un comentario que a una respuesta. Con un poco más de representación, podrás publicar comentarios .
Nathan Tuggy

@NathanTuggy No, es una respuesta completa y, en mi humilde opinión, más directa que la más popular en este hilo.
daOnlyBG

@daOnlyBG: No estoy seguro de cómo se veía la respuesta cuando la vi, ya que eso fue antes de los comentarios bloqueados en los períodos de gracia (y, por lo tanto, puede haber sido editado en silencio). Pero ahora, está razonablemente completo, estoy de acuerdo.
Nathan Tuggy

@NathanTuggy Woah, no sabía que había ediciones silenciosas alguna vez. Eso explica.
daOnlyBG

7

Ese mensaje de error indica que ya tiene un control remoto en su directorio git. Si está satisfecho con ese control remoto, puede empujar su código. Si no, o si no puedes empujar solo:

git remote remove origin
git remote add origin git@github.com:ppreyer/first_app.git

Voilà!


7

El concepto de remotees simplemente la URL de su repositorio remoto.

El origines un alias que apunta a esa URL. Entonces, en lugar de escribir la URL completa cada vez que queremos enviar algo a nuestro repositorio, solo usamos este alias y ejecutamos:

git push -u origin master

Diciendo que git a pushnuestro código desde nuestra rama maestra local al repositorio de origen remoto .

Cada vez que clonamos un repositorio , git crea este alias por defecto. Además, cada vez que creamos un nuevo repositorio , lo creamos nosotros mismos.

Cualquiera sea el caso, siempre podemos cambiar este nombre a lo que queramos, ejecutando esto:

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

Dado que está almacenado en el lado del cliente de la aplicación git (en nuestra máquina), el cambio no afectará nada en nuestro proceso de desarrollo, ni en nuestro repositorio remoto. Recuerde, es solo un nombre que apunta a una dirección .

Lo único que cambia aquí al cambiar el nombre del alias es que tenemos que declarar este nuevo nombre cada vez que enviamos algo a nuestro repositorio.

git push -u my-remote-alias master

Obviamente un solo nombre no puede apuntar a dos direcciones diferentes. Es por eso que recibe este mensaje de error. Ya hay un alias nombrado originen su máquina local. Para ver cuántos alias tiene y cuáles son, puede iniciar este comando:

git remote -v

Esto le mostrará todos los alias que tiene más las URL correspondientes.

También puedes eliminarlos si te gusta ejecutar esto:

git remote rm my-remote-alias

En resumen:

  • averigua qué tienes ya,
  • eliminarlos o cambiarles el nombre,
  • agrega tus nuevos alias.

Feliz codificación


5

si ya agrega un proyecto para otro almacenamiento, como si carga en github y luego carga en bitbucket, entonces muestra este tipo de error.

Cómo eliminar Error: elimine el archivo git-hub en su proyecto y luego repita los siguientes pasos ...

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

También puede suceder si ejecuta el comando en el directorio sin git inicializado. Si ese es el caso, ejecute primero:

git init

4

para usar git tienes que ser

raíz

si no, entonces usa sudo

para eliminar el origen:

git remoto eliminar origen

para agregar origen:

git remote add origin http: // giturl


3
  • $ git remote add origin git@gitlab.com:abc/backend/abc.git

    En este comando, el origen no es parte del comando, es solo el nombre de su repositorio remoto. Puedes usar el nombre que quieras.

    • Primero puede verificar lo que contiene usando el siguiente comando

    $ git remote -v

    Te dará un resultado 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)

    si contiene la ruta del repositorio remoto, puede presionar directamente a eso sin agregar el origen nuevamente

    • Si no está contactando su ruta de repositorio remoto

    Luego puede agregar un nuevo origen con un nombre diferente y usarlo para presionar como $ git remote add origin101 git@gitlab.com:abc/backend/abc.git

    O puede renombrar el nombre de origen existente y agregar su origen

    git remote rename origin destination

    disparar debajo del comando de nuevo

    $ git remote -v

    destination git@gitlab.com:abc/backend/abc.git (fetch) destination git@gitlab.com:abc/backend/abc.git (push)

    Cambiará su nombre de repositorios existente para que pueda usar ese nombre de origen

    O simplemente puede eliminar su origen existente y agregar su origen

    git remote rm destination



2

enfrenta el mismo error al agregar el repositorio a git hun usando git bash en windows

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

fatal: el origen remoto ya existe.

fatal: remote origin already exists.

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

error: no se pudieron enviar algunas referencias a ' https://github.com/axaysushir/meditation_app_using_js.git '

Actualice el repositorio siguiendo el comando

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

luego agregue el repositorio usando git remote add github en lugar de git remote add origin

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

Y luego escriba el siguiente comando en lugar de git push origin master, esto cargará su repositorio en github

$ git push github master

2

actualizar el origen si ya existe usando este comando

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

0

Primero verifique Para ver cuántos alias tiene y cuáles son, puede iniciar este comando git remote -v

Luego vea en qué repositorio se encuentra, luego intente git remote set-url --add [Entonces su enlace de repositorio] git push -u maestro de origen


0

Al menos en bash, podemos forzar que el valor de retorno del código de salida del comando sea 0

Puede quitar el control remoto anterior y agregarlo nuevamente

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

0

En caso de que desee hacer a través de GUI, haga lo siguiente:

  1. Asegúrese de que los "archivos ocultos" estén visibles en su carpeta de proyecto
  2. Ir al directorio .git
  3. Edite el archivo url en el archivo config.txt y guárdelo.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.