# git remoto

## Git remoto

El comando `git remote` le permite crear, ver y eliminar conexiones a otros repositorios. Las conexiones remotas son más como marcadores que como enlaces directos a otros repositorios. En lugar de proporcionar acceso en tiempo real a otro repositorio, sirven como nombres convenientes que se pueden usar para hacer referencia a una URL no tan conveniente.

Por ejemplo, el siguiente diagrama muestra dos conexiones remotas desde su repositorio al repositorio central y al repositorio de otro desarrollador. En lugar de hacer referencia a ellos por sus URL completas, puede pasar los accesos directos de origen y john a otros comandos de Git.![Usando git remote para conectar otros repositorios](https://wac-cdn.atlassian.com/dam/jcr:df13d351-6189-4f0b-94f0-21d3fcd66038/01.svg?cdnVersion=1379)

![](https://3089493477-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MO778ZqK_vdCAm4D0yl%2F-MOon8Ed-8MesO-hwYdB%2F-MOp4siKWIfTYve-4fsg%2Fimage.png?alt=media\&token=32436528-6fb5-4667-a5d2-4080294b7eae)

### Descripción general del uso remoto de Git

El comando `git remote` es esencialmente una interfaz para administrar una lista de entradas remotas que se almacenan en el `./.git/config`archivo del repositorio . Los siguientes comandos se utilizan para ver el estado actual de la lista remota.

### Ver configuraciones remotas de git

```
git remote
```

Enumere las conexiones remotas que tiene a otros repositorios.

```
git remote -v
```

Igual que el comando anterior, pero incluye la URL de cada conexión.

### Crear y modificar configuraciones remotas de git

El comando `git remote` también es un método conveniente o 'auxiliar' para modificar el `./.git/config`archivo de un repositorio . Los comandos que se presentan a continuación le permiten administrar las conexiones con otros repositorios. Los siguientes comandos modificarán el `/.git/config`archivo del repositorio . El resultado de los siguientes comandos también se puede lograr editando directamente el `./.git/config`archivo con un editor de texto.

```
git remote add <name> <url>
```

Cree una nueva conexión a un repositorio remoto. Después de agregar un control remoto, podrá usar como un atajo conveniente para en otros comandos de Git.

```
git remote rm <name>
```

Elimine la conexión al repositorio remoto llamado .

```
git remote rename <old-name> <new-name>
```

Cambiar el nombre de una conexión remota desde a .

### Discusión remota de Git

Git está diseñado para brindar a cada desarrollador un entorno de desarrollo completamente aislado. Esto significa que la información no se transmite automáticamente de un repositorio a otro. En su lugar, los desarrolladores necesitan extraer manualmente las confirmaciones ascendentes en su repositorio local o enviar manualmente sus confirmaciones locales al repositorio central. El `git remote`comando es realmente una forma más fácil de pasar URL a estos comandos de "compartir".

### El origen Remoto

Cuando clona un repositorio con `git clone`, automáticamente crea una conexión remota llamada `origin` que apunta al repositorio clonado. Esto es útil para los desarrolladores que crean una copia local de un repositorio central, ya que proporciona una manera fácil de extraer cambios ascendentes o publicar confirmaciones locales. Este comportamiento también es la razón por la que la mayoría de los proyectos basados ​​en Git llaman al origen de su repositorio central.

### URL de repositorio

Git admite muchas formas de hacer referencia a un repositorio remoto. Dos de las formas más fáciles de acceder a un repositorio remoto son a través de los protocolos HTTP y SSH. HTTP es una forma sencilla de permitir el acceso anónimo y de solo lectura a un repositorio. Por ejemplo:

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

Pero, por lo general, no es posible enviar confirmaciones a una dirección HTTP (de todos modos, no querría permitir inserciones anónimas). Para el acceso de lectura y escritura, debe usar SSH en su lugar:

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

Necesitará una cuenta SSH válida en la máquina host, pero aparte de eso, Git admite acceso autenticado a través de SSH listo para usar. Las soluciones modernas de alojamiento seguro de terceros, como Bitbucket.com, le proporcionarán estas URL.

### Comandos remotos de Git

El comando `git remote` es uno de los muchos comandos de Git que toma 'subcomandos' adicionales añadidos. A continuación se muestra un examen de los `git remote`subcomandos de uso común .

```
ADD <NAME> <URL>
```

Agrega un registro `./.git/config`para el nombre remoto en la URL del repositorio .

Acepta una `-f`opción, que será inmediatamente después de que se cree el registro remoto.`git fetch`

Acepta una `--tags`opción, que importará inmediatamente todas las etiquetas del repositorio remoto.`git fetch`

```
RENAME <OLD> <NEW>
```

Actualizaciones `./.git/config`para cambiar el nombre del registro a . Se actualizan todas las ramas de seguimiento remoto y los ajustes de configuración para el control remoto.

```
REMOVE or RM <NAME>
```

Modifica `./.git/config`y elimina el control remoto denominado. Se eliminan todas las ramas de seguimiento remoto y los ajustes de configuración del control remoto.

```
GET-URL <NAME>
```

Genera las URL de un registro remoto.

Acepta `--push`, las URL push se consultan en lugar de buscar URL.

Con `--all`, se enumerarán todas las URL del control remoto.

```
SHOW <NAME>
```

Emite información de alto nivel sobre el control remoto .

```
PRUNE <NAME>
```

Elimina las sucursales locales de que no están presentes en el repositorio remoto.

Acepta una `--dry-run`opción que enumerará qué ramas están configuradas para podarse, pero en realidad no las podará.

### Ejemplos remotos de Git

Además del origen, a menudo es conveniente tener una conexión con los repositorios de sus compañeros de equipo. Por ejemplo, si su compañero de trabajo, John, mantiene un repositorio de acceso público activado `dev.example.com/john.git`, puede agregar una conexión de la siguiente manera:

```
git remote add john http://dev.example.com/john.git
```

Tener este tipo de acceso a los repositorios de los desarrolladores individuales permite colaborar fuera del repositorio central. Esto puede resultar muy útil para equipos pequeños que trabajan en un proyecto grande.

### Mostrando tus controles remotos

De forma predeterminada, el `git remote`comando enumerará las conexiones remotas almacenadas previamente a otros repositorios. Esto producirá una salida de una sola línea que enumera los nombres del "marcador" de los repositorios remotos.

```
$ git remote
origin
upstream
other_users_repo
```

Invocar `git remote`con la `-v`opción imprimirá la lista de nombres de repositorios marcados y, además, la URL del repositorio correspondiente. La `-v`opción significa "detallado". A continuación se muestra un ejemplo de salida detallada `git remote`.

```
git remote -v
origin  git@bitbucket.com:origin_user/reponame.git (fetch)
origin  git@bitbucket.com:origin_user/reponame.git (push)
upstream    https://bitbucket.com/upstream_user/reponame.git (fetch)
upstream    https://bitbucket.com/upstream_user/reponame.git (push)
other_users_repo    https://bitbucket.com/other_users_repo/reponame (fetch)
other_users_repo    https://bitbucket.com/other_users_repo/reponame (push)
```

### Agregar repositorios remotos

El `git remote add`comando creará un nuevo registro de conexión a un repositorio remoto. Después de agregar un control remoto, podrá usar como un atajo conveniente para en otros comandos de Git. Para obtener más información sobre la sintaxis de URL aceptada, consulte la sección "URL de repositorio" a continuación. Este comando creará un nuevo registro dentro del repositorio `./.git/config`. A continuación, se muestra un ejemplo de esta actualización del archivo de configuración:

```
$ git remote add fake_test https://bitbucket.com/upstream_user/reponame.git; [remote "remote_test"] 
  url = https://bitbucket.com/upstream_user/reponame.git 
  fetch = +refs/heads/*:refs/remotes/remote_test/*
```

### Inspeccionar un control remoto

El subcomando show se puede agregar a `git remote`para brindar una salida detallada sobre la configuración de un control remoto. Esta salida contendrá una lista de ramas asociadas con el control remoto y también los puntos finales adjuntos para buscar y enviar.

```
git remote show upstream
* remote upstream
   Fetch URL: https://bitbucket.com/upstream_user/reponame.git
   Push URL: https://bitbucket.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)
```

### Obtención y extracción de controles remotos de Git

Una vez que se ha configurado un registro remoto mediante el uso del `git remote`comando, el nombre remoto se puede pasar como argumento a otros comandos de Git para comunicarse con el repositorio remoto. Ambos [`git fetch`](https://www.atlassian.com/git/tutorials/syncing/git-fetch), y [`git pull`](https://www.atlassian.com/git/tutorials/syncing/git-pull) se pueden usar para leer desde un repositorio remoto. Ambos comandos tienen diferentes operaciones que se explican con mayor profundidad en sus respectivos enlaces.

### Empujar a controles remotos Git

El `git push`comando se usa para escribir en un repositorio remoto.

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

Este ejemplo cargará el estado local de al repositorio remoto especificado por .

### Cambio de nombre y eliminación de controles remotos

```
git remote rename <old-name> <new-name>
```

El comando de `git remote`cambio de nombre se explica por sí mismo. Cuando se ejecuta, este comando cambiará el nombre de una conexión remota desde a . Además, esto modificará el contenido de `./.git/config`para cambiar el nombre del registro del control remoto allí también.

```
git remote rm <name>
```

El comando `git remote rm`eliminará la conexión al repositorio remoto especificado por el parámetro. Para demostrarlo, "deshagamos" la adición remota de nuestro último ejemplo. Si ejecutamos `git remote rm remote_test`y luego examinamos el contenido de `./.git/config`podemos ver que el `[remote "remote_test"]`registro ya no está allí.
