Git: cambiar la URL del repositorio remoto

    Si bien inicialmente pensé que es muy raro que un repositorio remoto cambie de ubicación, en realidad sucede mucho más de lo que pensaba. Un repositorio remoto puede cambiar de un servidor privado a otro (como un NAS), de un repositorio de GitHub personal a uno en una organización, o incluso de GitHub a GitLab.

    Cuando esto suceda, deberá cambiar la URL de su repositorio remoto en su repositorio local. En este breve artículo, eso es exactamente lo que cubriré.

    Primero, vayamos directamente al comando para el que estás aquí:

    $ git remote set-url <remote-repo> <remote-repo-url>
    

    Entonces, si desea cambiar la URL de «origen» a una nueva URL en mi cuenta de GitHub, el comando podría verse así:

    $ git remote set-url origin https://github.com/scottwrobinson/foobar.git
    

    Luego, puede verificar que la URL se haya actualizado utilizando el remote comando con el -v opción, que es la abreviatura de --verbose:

    $ git remote -v
    origin  https://github.com/scottwrobinson/foobar.git (fetch)
    origin  https://github.com/scottwrobinson/foobar.git (push)
    

    Establecer diferentes reposiciones para Fetch y Push

    Como puede ver en la salida de remote -v, se muestran dos líneas, una perteneciente a fetch y uno para push. Esto significa que también puede establecer diferentes URL según el comando que esté ejecutando.

    Un ejemplo de este caso de uso es si ha bifurcado el repositorio de alguien y desea continuar obteniendo actualizaciones de ellos, pero luego solo desea enviar cambios a su versión bifurcada. Así es como manejarías eso:

    $ git remote set-url <remote-repo> <original-repo-url>
    $ git remote set-url --push <remote-repo> <forked-repo-url>
    

    Note que el segundo comando usa el --push opción, que le dice a Git que solo configure esa URL para push comandos. En la práctica, la ejecución del comando se vería así:

    $ git remote set-url origin https://github.com/example/foobar.git
    $ git remote set-url --push origin https://github.com/scottwrobinson/foobar.git
    

    Tenga en cuenta que el repositorio remoto se denomina «origen» para ambos, y solo la URL es diferente. En este ejemplo, https://github.com/scottwrobinson/foobar.git es la versión bifurcada.

    De nuevo, ejecutando el remote -v comando podemos verificar que la URL se ha cambiado correctamente:

    $ git remote -v
    origin  https://github.com/example/foobar.git (fetch)
    origin  https://github.com/scottwrobinson/foobar.git (push)
    

    Usando diferentes protocolos

    Otra cosa que quería señalar es que en todos los ejemplos anteriores solo mostraba URL HTTPS, aunque se puede usar cualquier URL Git válida. Git admite una gran cantidad de tipos de URL, algunos de los cuales puede encontrar aquí:

    ssh://[email protected]/path/to/repo.git
    git://host.com/path/to/repo.git
    https://host.com/path/to/repo.git
    file:///path/to/repo.git
    

    Entonces, si por alguna razón desea extraer de un repositorio remoto en GitHub, pero luego solo enviar sus cambios a otro repositorio accesible desde su sistema de archivos, entonces Git es lo suficientemente flexible para que pueda hacerlo:

    $ git remote set-url origin [email protected]:example/foobar.git
    $ git remote set-url --push origin file://~/projects/foobar.git
    

     

    Etiquetas:

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *