Repositorios remotos

Categories:

Ya que trabajamos de manera local local y conocimos qué son las ramas es momento de trabajar con repositorios que se encuentran en otros equipos.

Clonar un repositorio

Al clonar un repositorio se obtiene una copia del repositorio.
Se incluye todo el historial desde el primer commit hasta la versión actual.
Para clonar un repositorio remoto se necesita el URL donde se encuentra el repositorio:

$ git clone <ruta-al-repositorio-remoto>

# Podemos utilizar el protocolo https 
# que es la manera más común para los repositorios
# que están en github
$ git clone https://github.com/eamexicano/setup

# Podemos utilizar SSH si el repositorio está en un
# servidor al cual tenemos acceso con SSH
$ git clone ssh://<usuario>@<ip o nombre-dominio>:/ruta/al/repositorio.git

Para visualizar las ramas incluyendo las que se encuentran en el repositorio remoto.

$ git branch -r

Agregar referencia a un repositorio remoto

Si quiere agregar una referencia de un repositorio a un repositorio remoto se tiene que agregar un origen.

$ git remote add <nombre> <url-repositorio>
$ git remote add origin https://github.com/eamexicano/setup

Un repositorio puede tener muchos orígenes. De esta manera se pueden integrar diferentes repositorios remotos al repositorio actual.

Eliminar la referencia hacia un repositorio remoto

Si ya no se quiere tener la referencia hacia un repositorio remoto se puede eliminar con remove.

$ git remote remove <nombre>
$ git remote remove origin

Obtener cambios

Una vez agregado el repositorio remoto, se pueden obtener los cambios que existen en el repositorio remoto – en referencia con la copia de trabajo local – con fetch.

$ git fetch <nombre>
$ git fetch origin

Con git fetch se va a obtener cualquier cambio del repositorio remoto con referencia al repositorio desde el cual se está llamando.

Si existen muchos repositorios remotos se puede especificar el repositorio remoto de donde se va a obtener el cambio.

Git fetch únicamente obtiene los cambios pero no los integra.

Integrar los cambios

Para integrar los cambios obtenidos con fetch se utiliza merge:

$ git merge origin/master

Generalmente se utilizan fetch y merge de manera frecuente, es por eso que git tiene una abreviación para estas dos instrucciones juntas. La abreviación es git pull:

$ git pull <nombre>

Con pull se obtienen los cambios y se integra el contenido del repositorio remoto en la rama que se está trabajando en el repositorio local.

Git pull es conveniente si sabemos que los cambios que vamos a obtener no van a generar algún conflicto con las modificaciones que estemos realizando en el repositorio – por ejemplo que seamos los únicos que le demos seguimiento al repositorio -.

Enviar cambios al repositorio remoto

Hay ocasiones en que queremos enviar cambios al repositorio remoto – para sincronizarlo -. Para esto se utilizamos git push.

$ git push <nombre> <rama>

Dependiendo del protocolo con el cual se agregó la referencia al repositorio remoto – http(s) / ssh – probablemente se pidan credenciales de acceso – usuario / contraseña – para aceptar los cambios enviados.

Si se utiliza SSH se puede configurar para que la autenticación sea sin contraseña para que la sincronización de los repositorios se de sin contratiempos.