Tengo un repo (origen) en una llave USB que cloné en mi disco duro (local). Moví "origen" a un NAS y probé con éxito la clonación desde aquí.
Me gustaría saber si puedo cambiar el URI de "origen" en la configuración de "local" por lo que ahora va a tirar de la NAS, y no de la llave USB.
Por ahora, puedo ver dos soluciones:
empujar todo al usb-orign, y copiarlo al NAS de nuevo (implica mucho trabajo debido a los nuevos commits de nas-origin);
añadir un nuevo remoto a "local" y eliminar el antiguo (me temo que' voy a romper mi historia).
Puedes
git remote set-url origin new.git.url/here
(ver git help remote
) o simplemente editar .git/config
y cambiar las URLs allí. No corres peligro de perder el historial a menos que hagas algo muy tonto (y si te preocupa, haz una copia de tu repo, ya que tu repo es tu historial).
git remote -v
# View existing remotes
# origin https://github.com/user/repo.git (fetch)
# origin https://github.com/user/repo.git (push)
git remote set-url origin https://github.com/user/repo2.git
# Change the 'origin' remote's URL
git remote -v
# Verify new remote URL
# origin https://github.com/user/repo2.git (fetch)
# origin https://github.com/user/repo2.git (push)
Cambiar el host de un servidor de origen Git
de: http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/
Espero que esto no sea algo que tengas que hacer. Al servidor que he estado utilizando para colaborar en algunos proyectos git le ha caducado el nombre de dominio. Esto significó encontrar una manera de migrar los repositorios locales para volver a estar sincronizados.
Actualización: Gracias a @mawolf por señalar que hay una manera fácil con las versiones recientes de git (post Feb, 2010):
git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git
Ver la página man para más detalles.
Si estás en una versión anterior, entonces prueba esto:
Como advertencia, esto funciona sólo si se trata del mismo servidor, sólo que con diferentes nombres.
Asumiendo que el nuevo nombre de host es newhost.com
, y el antiguo era oldhost.com
, el cambio es bastante simple.
Edita el archivo .git/config
en tu directorio de trabajo. Deberías ver algo como:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://oldhost.com/usr/local/gitroot/myproject.git
Cambia oldhost.com
por newhost.com
, guarda el archivo y ya está.
De mis pruebas limitadas (git pull origin; git push origin; gitx
) todo parece en orden. Y sí, sé que es una mala forma de meterse con los internos de git.