Todo lo que hemos aprendido hasta ahora ha sido desde nuestra casa (nuestro ordenador, en local básicamente) que puede sernos muy útil para tener el manejo de nuestra herramienta de control de versiones.

Pero realmente y como bien podremos pensar, si nuestra computadora un día entra en llamas todo este trabajo que hemos ido aprendiendo se va con el ordenador o por ejemplo si tenemos que colaborar varias personas en el mismo repositorio con distintos dispositivos no tenemos acceso al repositorio de manera común. Necesitamos aprender a salir de casa.

El repositorio local es un repositorio Git que está almacenado en tu ordenador, mientras que el repositorio remoto significa que está almacenado en un servidor remoto.

Para poder colaborar en un proyecto, es necesario saber el manejo de los repositorios remotos, estos son versiones del proyecto hospedados en Internet.

Por poner un símil parecido podemos jugar en un juego instalado en tu ordenador o jugar varias personas en línea.

Aquí entra en juego el potencial de git a nivel colaborativo, porque nos permite interaccionar con otros repositorios.

Si no hemos interaccionado con repositorios remotos si ejecutamos este comando:‌

git remote

No nos debería de devolver nada porque no hemos salido "fuera".

Este comando nos permite saber a qué repositorios remotos estamos conectadas actualmente dentro de nuestro repositorio de git.

⚠️
Recuerda que para este ejemplo que vamos a hacer ponerte en un directorio temporal o de prueba. Para el comando git clone no hace falta iniciar un repositorio vacio.

Para ello la forma más sencilla es traernos un repositorio de fuera (remoto). Para ello usaremos el comando git clone con la URL de un repositorio ya existente:

git clone https://github.com/schacon/ticgit

Nos devolverá lo siguiente aproximadamente:

Clonando en 'ticgit'... remote: Enumerating objects: 1857, done. remote: Total 1857 (delta 0), reused 0 (delta 0), pack-reused 1857 Recibiendo objetos: 100% (1857/1857), 334.06 KiB | 1.65 MiB/s, listo. Resolviendo deltas: 100% (837/837), listo.

Ahora si probamos a listar lo que tenemos en el directorio podemos ver que tenemos un nuevo directorio llamado ticgit.

Accedemos a él cd ticgit/ y comprobamos que dentro tenemos mucho contenido de un proyecto ajeno de prueba. No es nuestro ni estaba en nuestro local, nos lo hemos descargado de un repositorio remoto.

Con el comando git clone lo que hemos hecho es copiar un repositorio de git ubicado en github en nuestro directorio local. Es una descarga de directorios y ficheros.

Ahora si ejecutamos otra vez el comando para ver los remotos git remote podemos apreciar que tenemos un remoto, cuyo nombre es origin.

Si ejecutamos el comando más verboso git remote -v podemos ver las urls:

origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)

Dichas URLs pueden usar distintos protocolos de transferencia (https como en nuestro caso, git, ssh...). De ello ya hablaremos más en profundidad adelante.

También tenemos la opción  de ver más información:

git remote show origin

* remoto origin
  URL  para obtener: https://github.com/schacon/ticgit
  URL para publicar: https://github.com/schacon/ticgit
  Rama HEAD: master
  Ramas remotas:
    master rastreada
    ticgit rastreada
  Rama local configurada para 'git pull':
    master fusiona con remoto master
  Referencia local configurada para 'git push':
    master publica a master (actualizado)

Nos indicará la misma información que con git remote -v las ramas remotas que hay de este repositorio remoto y las configuraciones específicas de este remoto para git pull y git push.

Ahora ya tienes un proyecto en el que puedes trabajar que está en un servidor remoto (en este caso de github) a tu local.


Fuente: "Fundamentos de Git. Trabajar con remotos" - https://git-scm.com/book/es/v2/Fundamentos-de-Git-Trabajar-con-Remotos