¿Cómo cambio el URI (URL) de un repositorio Git remoto?
Tengo un repositorio (origen) en una llave USB que cloné en mi disco duro (local). Moví "origen" a un NAS y probé con éxito su clonación desde aquí.
Me gustaría saber si puedo cambiar el URI de "origen" en la configuración de "local" para que ahora se extraiga del NAS y no de la llave USB.
Por ahora, puedo ver dos soluciones:
envíe todo al origen USB y cópielo al NAS nuevamente (implica mucho trabajo debido a las nuevas confirmaciones al origen NAS);
agregue un nuevo control remoto a "local" y elimine el anterior (temo romper mi historial).
Puede
git remote set-url origin new.git.url/here
Ver git help remote
. También puedes editar .git/config
y cambiar las URL allí.
No corres ningún peligro de perder el historial a menos que hagas algo muy tonto (y si estás preocupado, simplemente haz una copia de tu repositorio, ya que tu repositorio 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 la URL de un control remoto
Cambiar host para un servidor Git Origin
de: http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/
Con suerte, esto no es algo que debas hacer. El servidor que he estado usando para colaborar en algunos proyectos de git tenía el nombre de dominio caducado. Esto significó encontrar una manera de migrar los repositorios locales para volver a sincronizarlos.
Actualización: Gracias a @mawolf por señalar que existe una manera fácil con las versiones recientes de git (publicada en febrero de 2010):
git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git
Consulte la página de manual para obtener más detalles.
Si tienes una versión anterior, prueba esto:
Como advertencia, esto funciona sólo porque es el mismo servidor, solo que con nombres diferentes.
Suponiendo que el nuevo nombre de host sea newhost.com
y el antiguo sea oldhost.com
, el cambio es bastante simple.
Edite el .git/config
archivo en su 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
a newhost.com
, guarda el archivo y listo.
Según mis pruebas limitadas ( git pull origin; git push origin; gitx
), todo parece estar en orden. Y sí, sé que es de mala educación meterse con las partes internas de git.