2010-06-10 33 views
49

Estoy alojando un proyecto en Github, pero ahora compré un plan con Dreamhost que incluye acceso al shell y Git.Al salir de Github, ¿cómo cambiar el origen de un repositorio de Git?

 Github [Origin] 
    /  \ 
    pull/   \pull 
    /push  push\ 
    /    \ 
Laptop   Dreamhost 
(cloned)   (cloned) 

me gustaría eliminar mi repo de Github, ya partir empuje directamente a DH.

¿Cómo cambio el origen en mi computadora portátil y debería eliminar el origen en Dreamhost?

Respuesta

119
git remote rename origin github 
git remote add origin <DreamHost-git-URL> 
# test and make sure the DreamHost origin works properly for fetch and push 
git remote rm github 

prefiero usar el comando 'git remoto en lugar de atornillar sobre la .git archivo/configuración a mano.

+3

Estoy de acuerdo. Considero que el formato de '.git/config' es un detalle de implementación, I * siempre * uso las herramientas como' git remote' y 'git config' para asegurarme de no arruinar la sintaxis. –

+1

Oh +1 porque me gusta esto. Pero deberías agregar más información sobre cómo migrar las ramas de seguimiento después ... – hurikhan77

+2

Tuve que agregar 'git config branch.master.remote origin'. Parece que git cambió esa variable como un efecto secundario del cambio de nombre remoto. –

28

La manera más fácil es editar su archivo .git/config en su computadora portátil. Simplemente busque su url github y reemplácela por la de DreamHost. Asegúrese de que su clave pública ssh esté configurada en Dreamhost. Ahora puedes presionar Origin Master y habrás poblado tu repositorio de dreamhost.

Puede eliminar el origen en Dreamhost pero no es necesario.

Además, asegúrese de que el repositorio que está allí está vacío. De forma predeterminada, no puede enviar a repositorios no vacíos.

+0

Bueno, como dijiste, es un no n-bare repo, estoy un poco confundido. Qué hacer ahora ? –

+0

Encontrado http://stackoverflow.com/questions/1784506/when-creating-a-git-repository-that-will-be-on-the-server-can-i-convert-it-to-a –

+0

Como arriba , todo lo que necesitas es la opción --bare al clonar lo que va a ser un repositorio upstream. –

4

La manera más fácil es editar su archivo .git/config, que enumera dónde vive el origen. Puede probarlo ejecutando un git fetch

Puede borrar las referencias remotas en el lado de Dreamhost si lo desea, en el mismo archivo.

51

La forma más sencilla es:

$ git config remote.origin.url <Dreamhost-git-URL> 

Usted muestra los mandos a distancia después de esto:

$ git remote -v 
origin Dreamhost-git-URL (fetch) 
origin Dreamhost-git-URL (push) 
+2

Creo que esta solución parece mucho más fácil que la respuesta de más de 50 ... – Thomas

+0

Sí, parece la mejor solución. – Profpatsch

+0

No creo que esta solución existiera en las versiones de lanzamiento de git en el momento en que escribí mi respuesta, pero definitivamente parece más fácil. :) – clee

24

La mejor manera es a git remote set-url origin <new-url>

+1

este comentario debería ser superior. el único trazador de líneas que no depende de la estructura de configuración interna de git –

+0

Estoy de acuerdo, creo que esta es la mejor respuesta. Es simple y hace lo que necesita en una línea. – imns

2

por qué no simplemente:

git remote remove origin 

git remote add origin <Dreamhost-git-URL> 

git push -u origin --all 
+0

Creé un repositorio vacío en github. En la configuración local, he clonado desde el repositorio, luego he agregado algunos archivos y los he enviado al repositorio de Github. Luego creé un nuevo repositorio en gitlab y importé código del repositorio de github. Ahora quiero cambiar la referencia de repositorio remoto de mi repositorio local a este repositorio gitlab. Hice 'git remote add origen ' en mi repositorio local. No mostró ningún error (¿se supone que debo obtener algún resultado? Tampoco recibí ningún mensaje de éxito). Pero ahora no puedo ver los cambios realizados en el repositorio de gitlab en mi local. –

Cuestiones relacionadas