Saltar al contenido

git remote

Definición

El comando git remote está diseñado para crear, ver y eliminar conexiones con otros repositorios. Las conexiones remotas actúan como marcadores de otros repositorios, proporcionando nombres convenientes para referenciar URL que, de otro modo, serían engorrosas.

El diagrama de abajo muestra dos conexiones remotas: una a un repositorio central y otra al repositorio de otro desarrollador. Puedes compartir el nombre remoto con otro desarrollador, permitiéndole usarlo como atajo en otros comandos de Git. Como resultado, no tendrás que referenciar las conexiones por sus URL completas.

git remote

Creación y edición de configuraciones de git remote

El comando git remote también se usa para editar el archivo ./.git/config del repositorio. Puedes hacerlo ejecutando los comandos de abajo:

  1. Usa el comando de abajo para añadir una nueva conexión remota a un repositorio remoto. Luego puedes usar <name> como un atajo apropiado para <url> en otros comandos de Git.

git remote add

bash
git remote add <name> <url>
  1. Ejecuta el siguiente comando para eliminar la conexión al repositorio remoto, que se llama <name>.

git remote rm

bash
git remote rm <name>
  1. Ejecuta el comando de abajo para cambiar el nombre de una conexión remota:

git remote rename

bash
git remote rename <old> <new>
  1. Usa el comando de abajo para cambiar la URL de un remoto existente:

git remote set-url

bash
git remote set-url <name> <new-url>

Puedes lograr el mismo resultado editando directamente el archivo ./.git/config con un editor de texto.

El remoto origin

Ejecutar el comando git clone crea automáticamente una conexión remota llamada origin, que apunta al repositorio clonado. Una copia local facilita obtener cambios ascendentes o publicar commits locales. Por eso el repositorio central en muchos proyectos se llama origin.

URL de repositorios

Hay muchas formas de referenciar un repositorio remoto, pero las dos más simples se consideran a través de los protocolos HTTPS y SSH. Las URL HTTPS se usan comúnmente para acceso de solo lectura o cuando se combinan con ayudantes de credenciales o tokens de acceso personal para la autenticación.

Formato de URL HTTPS

bash
http://host/path/to/repo.git

Usa SSH para acceso de lectura y escritura. Necesitas una cuenta SSH válida. Ten en cuenta que los requisitos de acceso dependen de los permisos del repositorio; los repositorios públicos permiten acceso sin autenticación, mientras que los privados requieren autenticación. Las soluciones modernas y seguras de alojamiento de terceros, por ejemplo, Bitbucket.com, pueden proporcionar estas URL:

Formato de URL SSH

bash
ssh://user@host/path/to/repo.git

También puedes usar la sintaxis tipo SCP, ampliamente compatible:

bash
user@host:path/to/repo.git

Subcomandos de git remote

El comando git remote tiene sus propios subcomandos. Los examinaremos a continuación.

git remote add <name> <url>

Añade un registro al archivo ./.git/config para un remoto llamado <name> que apunta a <url>. Acepta la opción -f, que ejecuta inmediatamente git fetch <name> después de crear el registro remoto. Otra opción aceptada por este subcomando es --tags, que ejecutará inmediatamente git fetch <name> e importará todas las etiquetas del repositorio remoto.

bash
git remote add <name> <url>

git remote rename <old> <new>

Actualiza ./.git/config para cambiar el nombre de <old> a <new>. Todas las configuraciones y ramas del remoto se actualizan en consecuencia.

bash
git remote rename <old> <new>

git remote remove or rm

Elimina el remoto llamado <name> de ./.git/config. Se eliminan todas las configuraciones y ramas asociadas.

bash
git remote rm <name>

git remote set-url <name> <new-url>

Cambia la URL de un registro remoto existente en ./.git/config.

bash
git remote set-url <name> <new-url>

git remote get-url <name>

Muestra las URL de un registro remoto. Este subcomando acepta las opciones --push y --all.

bash
git remote get-url <name>

git remote show <name>

Muestra información detallada sobre el remoto <name>.

bash
git remote show <name>

git remote prune <name>

Elimina las ramas de seguimiento remoto de <name> que ya no existen en el remoto. Este subcomando acepta la opción --dry-run, que lista las ramas que se han marcado para ser podadas, pero en realidad no las poda.

bash
git remote prune <name>

Ejemplos de git remote

Conectarse a los repositorios de otros desarrolladores permite colaborar fuera del repositorio central. Por ejemplo, si un colega mantiene un repositorio de acceso público en dev.example.com/tom.git, puedes añadirlo así:

git remote add <name> <url>

bash
git remote add tom http://dev.example.com/tom.git

Mostrar tus remotos

De forma predeterminada, git remote enumera todas las conexiones remotas configuradas. La salida muestra una sola línea por cada repositorio marcado.

el comando git remote

bash
git remote
origin
upstream
other_repo

Puedes invocar el comando git remote con la opción -v, que mostrará los nombres de los repositorios marcados junto con la URL del repositorio correspondiente.

git remote -v

bash
git remote -v
origin      [email protected]:origin_user/reponame.git (fetch)
origin      [email protected]:origin_user/reponame.git (push)
upstream    https://example.com/upstream_user/reponame.git (fetch)
upstream    https://example.com/upstream_user/reponame.git (push)
other_repo  https://example.com/other_repo/reponame.git (fetch)
other_repo  https://example.com/other_repo/reponame.git (push)

Añadir repositorios remotos

Ejecutar git remote add crea un nuevo registro de conexión en ./.git/config. Luego <name> sirve como atajo para <url> en otros comandos de Git.

git remote add example

bash
git remote add fake_test https://example.com/upstream_user/reponame.git

Inspeccionar un remoto

Añadir el subcomando show proporciona una salida detallada de la configuración, incluidas las ramas conectadas y los extremos de fetch/push.

git remote show

bash
git remote show upstream
* remote upstream
Fetch URL: https://example.com/upstream_user/reponame.git
Push URL: https://example.com/upstream_user/reponame.git
HEAD branch: master
Remote branches:
master tracked
 simd-deprecated tracked
 tutorial tracked
Local ref configured for 'git push':
 master pushes to master (fast-forwardable)

Obtener y hacer pull desde remotos de Git

Una vez configurado un remoto, su nombre puede usarse como argumento para otros comandos de Git para establecer comunicación con el repositorio remoto. Puedes usar los comandos git fetch y git pull para leer desde un repositorio remoto.

Hacer push a remotos de Git

El comando git push escribe en un repositorio remoto.

git push <remote-name> <branch-name>

bash
git push <remote-name> <branch-name>

Práctica

¿Cuáles son las afirmaciones correctas sobre el comando `git remote` según se describe en el tutorial de Git de W3Docs?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.