El origen remoto ya existe en 'git push' a un nuevo repositorio


548

Tengo mi proyecto en GitHub en algún lugar, git@github.com:myname/oldrep.git.

Ahora quiero enviar todo mi código a un nuevo repositorio en otra ubicación git@github.com:newname/newrep.git,.

Usé el comando:

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

pero estoy recibiendo esto:

fatal: el origen remoto ya existe.


66
Dé la salida del comando $> git remote -v show
sykora


Una buena manera es usar "importar desde otro repositorio" en la parte inferior de su nuevo repositorio creado, si conoce la URL del antiguo.
JW.ZG

Aquí se hizo una pregunta similar: stackoverflow.com/questions/2432764/…
jciloa

1
Si desea conservar el control remoto original, simplemente puede usar un nombre diferente git remote add origin2 ...., pero si solo necesita presionar una vez sin modificar la configuración del repositorio, simplemente puede hacerlo git push git@github.com:user/another-project.git master:master.
ccpizza

Respuestas:


870

Recibe este error porque "origen" no está disponible. "origen" es una convención que no forma parte del comando. "origen" es el nombre local del repositorio remoto.

Por ejemplo, también podrías escribir:

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

Ver el manual:

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

Para eliminar un repositorio remoto, ingrese:

git remote rm origin

Nuevamente, "origen" es el nombre del repositorio remoto si desea eliminar el control remoto "ascendente":

git remote rm upstream

8
"git remote rm origin" no funcionó, si no funciona, intente verificar con "git remote -v", esto le mostrará si su origen tiene un conjunto de URL, si no es probable que usted hice el init localmente y estoy tratando de empujarlo a distancia, y cometí un error como yo). Luego siga la respuesta de RobinH: git remote set-url origin git@github.com: username / projectname.git
Clarence Liu

1
verifique esta respuesta para forzar la url.
srodriguex 05 de

"git remote rm origin" funcionó de maravilla, ¡maravilloso! :) puhh, soy nuevo en la terminología de git, así que fue una búsqueda más grande, pero tu respuesta me ayudó mucho. :) ¡gracias!
Martin Pfeffer

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

¡La fuerza es la solución!
creador el

260

Las soluciones anteriores parecen ignorar el origen, y solo sugieren usar otro nombre. Cuando solo quieras usar git push origin, sigue leyendo.

El problema aparece porque se sigue un orden incorrecto de configuración de Git. Es posible que ya haya agregado un 'origen git' a su configuración .git.

Puede cambiar el origen remoto en su configuración de Git con la siguiente línea:

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

Este comando establece una nueva URL para el repositorio de Git al que desea enviar. Importante es completar su propio nombre de usuario y nombre de proyecto


77
Gracias, exactamente lo que tenía que hacer :)
winkbrace

Esto es para mí. Pero lo que realmente me ayudó con este problema fue porque utilicé portableGit que se instaló con Gihub para Windows. Encontré la solución aquí
PerseP

¡Excelente! ¡Necesitaba cambiar mi repositorio gitador a repositorio git lab y esta solución fue perfecta! ¡Gracias!
Marcelo dos Santos

Misma situación que OP, y necesitaba hacer esto y luego la solución de @ MrHus.
Sean the Bean

44
Esta es la mejor respuesta en mi humilde opinión
kratos

83

Si ha nombrado erróneamente el nombre local como "origen", puede eliminarlo con lo siguiente:

git remote rm origin

¿Qué significa "nombrar erróneamente el nombre local como 'origen'" en realidad? ¿Puede explicarlo en detalle? @Ozgur
Yuan Wen

1
Esto podría significar que agregó el origen remoto que no apunta a un repositorio git. Por lo tanto, si planea enviar todos sus cambios al maestro, el git se quejará diciendo que el origen remoto no es un repositorio de git.
Gautham Honnavara

22

MÉTODO1->

Como el origen ya existe, elimínalo.

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

MÉTODO2->

También se puede cambiar la URL del repositorio remoto existente mediante -> git remote set-url

Si está actualizando para usar HTTPS

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

Si está actualizando para usar SSH

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

Si intenta actualizar un control remoto que no existe, recibirá un error. Así que ten cuidado con eso.

MÉTODO3->

Use el comando git remote rename para cambiar el nombre de un control remoto existente. Un nombre remoto existente, por ejemplo, origen.

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

Para verificar el nuevo nombre del control remoto->

git remote -v

Si es nuevo en Git, intente este tutorial->

PRUEBA TUTORIAL GIT


1
Muchas gracias. Fui descargado, alguien más git y luego quería clonarlo en mi GitHub también. Finalmente, tengo éxito usando tu primer método.
Naimur Hasan

17

Simplemente puede editar su archivo de configuración en un editor de texto.

En el ~/.gitconfignecesita poner algo como lo siguiente:

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

[github]
        user = myname
        token = ff44ff8da195fee471eed6543b53f1ff

En el oldrep/.git/configarchivo (en el archivo de configuración de su repositorio):

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

Si hay una sección remota en el archivo de configuración de su repositorio y la URL coincide, solo necesita agregar la configuración de inserción. Si usa una URL pública para buscar, puede poner la URL para presionar como 'pushurl' (advertencia: esto requiere la versión 1.6.4 de Git recién lanzada).


10
  1. git remote rm origin

  2. git remote -v No mostrará ningún nombre de repositorio

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

  4. git push origin master Comenzará el proceso y creará la nueva sucursal. Puedes ver que tu trabajo es empujado a github.


8

No tiene que eliminar su control remoto "origen" existente, solo use un nombre que no sea "origen" para su complemento remoto, p. Ej.

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


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

6

Tengo el mismo problema, y ​​así es como lo solucioné después de investigar un poco:

  1. Descarga GitHub para Windows o usa algo similar, que incluye un shell
  2. Abra el Git Shellmenú desde la tarea. Esto abrirá un shell de energía que incluye comandos Git.
  3. En el shell, cambie a su antiguo repositorio, por ejemplo cd C:\path\to\old\repository
  4. Mostrar estado del antiguo repositorio

  5. Ahora elimine el repositorio remoto del repositorio local utilizando

    git remote rm origin
    
  6. Verifique nuevamente con el paso 4. Debe mostrar originsolo, en lugar de la ruta de búsqueda y empuje.

  7. Ahora que su antiguo repositorio remoto está desconectado, puede agregar el nuevo repositorio remoto. Use lo siguiente para conectarse a su nuevo repositorio.

Nota: En caso de que esté utilizando Bitbucket, primero creará un proyecto en Bitbucket. Después de la creación, Bitbucket mostrará todos los comandos Git necesarios para llevar su repositorio a control remoto, que se parece al siguiente fragmento de código. Sin embargo, esto también funciona para otros repositorios.

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

Eso es.


5

Tuve el mismo problema cuando configuré por primera vez usando Bitbucket .

Mi problema era que necesitaba cambiar el origen de la palabra por algo autodefinido. Usé el nombre de la aplicación. Entonces:

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

4

Debe cambiar el nombre del repositorio remoto a otra cosa.

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

a

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

Creo que esto debería funcionar.

Sí, estos son para el repositorio init y para agregar un nuevo control remoto. Solo con un cambio de nombre.


3

También puede cambiar el nombre del repositorio que desea insertar en el archivo REPOHOME / .git / config

(donde REPOHOME es la ruta a su clon local del repositorio).


1

Esto también puede suceder cuando se olvida de hacer una primera confirmación.


0

Debe verificar originy agregar si no existe.

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

Cree el archivo check.sh, pegue el script, actualice la URL de su repositorio git y ejecútelo ./check.sh.


0

Paso 1

git remote rm origin

Paso 2

git remote add origin enter_your_repository_url

Ejemplo:

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

-1

Primero, escriba esta línea de código para el control remoto eliminado:

$ git remote rm origin

y luego escribe esta línea:

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

Funciona correctamente


intenta dar más explicaciones para dar más valor a tu respuesta
Zeina

No estoy seguro de si ayuda a alguien a agregar uno de sus repositorios de github como origen remoto. Esta pregunta ya ha sido respondida un par de veces. Verifique la otra pregunta antes de crear una nueva con una calidad tan baja.
thmspl

-1

si desea crear un nuevo repositorio con el mismo proyecto dentro de github y el control remoto anterior no le permite hacerlo, en ese caso, primero elimine ese repositorio en github, entonces simplemente necesita eliminar la carpeta .git C: \ Users \ Shiva \ AndroidStudioProjects \ yourprojectname \ .git elimine esa carpeta , (asegúrese de hacer clic en el archivo oculto porque esta carpeta está oculta)

También haga clic en el signo menos (botón Eliminar) del estudio de Android Configuración-> Control de versiones, haga clic aquí para eliminar el control de versión de Android Y luego podrá crear un nuevo Repositorio.

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.