Clonar un repositorio: Git clone

  • Por
Cómo clonar un repositorio Git que encontramos en un hosting remoto de código, como GitHub o similares. Comando git clone y proceso para instalar las dependencias del proyecto.

En este artículo del Manual de Git vamos a hablar de la operativa de clonado de un repositorio, el proceso que tienes que hacer cuando quieres traerte el código de un proyecto que está publicado en GitHub y lo quieres restaurar en tu ordenador, para poder usarlo en local, modificarlo, etc.

Este paso es bastante básico y muy sencillo de hacer, pero es esencial porque lo necesitarás realizar muchas veces en tu trabajo como desarrollador. Además intentaremos complementarlo con alguna información útil, de modo que puedas aprender cosas útiles y un poquito más avanzadas.

Descargar vs Clonar

Al inicio de uso de un sitio como GitHub, si no tenemos ni idea de usar Git, también podemos obtener el código de un repositorio descargando un simple Zip. Esta opción la consigues mediante el enlace de la siguiente imagen.

Sin embargo, descargar un repositorio así, aunque muy sencillo no te permite algunas de las utilidades interesantes de clonarlo, como:

  • No crea un repositorio Git en local con los cambios que el repositorio remoto ha tenido a lo largo del tiempo. Es decir, te descargas el código, pero nada más.
  • No podrás luego enviar cambios al repositorio remoto, una vez los hayas realizado en local.

En resumen, no podrás usar en general las ventajas de Git en el código descargado. Así que es mejor clonar, ya que aprender a realizar este paso es también muy sencillo.

Clonar el repositorio Git

Entonces veamos cómo debes clonar el repositorio, de modo que sí puedas beneficiarte de Git con el código descargado. El proceso es el siguiente.

Nota: Asumimos que tienes instalado Git en tu sistema local. Puedes aprender a hacerlo en este artículo: Entiende, instala y configura Git.

Primero copiarás la URL del respositorio remoto que deseas clonar (ver el icono "Copy to clipboard en la siguiente imagen).

Luego abrirás una ventana de terminal, para situarte sobre la carpeta de tu proyecto que quieras clonar. Yo te recomendaría crear ya directamente una carpeta con el nombre del proyecto que estás clonando, o cualquier otro nombre que te parezca mejor para este repositorio. Te sitúas dentro de esa carpeta (cd, cd...) y desde ella lanzamos el comando para hacer el clon, que sería algo como esto:

git clone https://github.com/EscuelaIt/angular-avanzado.git . El último punto le indica que el clon lo vas a colocar en la carpeta donde estás situado, en tu ventana de terminal. La salida de ese comando sería más o menos como tienes en la siguiente imagen:

Instalar las dependencias

Habitualmente los desarrollos de Git tienen ignoradas las dependencias mediante el archivo .gitignore, por ello es importante que las instalemos de nuevo en el repositorio clon, en local.

Para cada tipo de proyecto, con cada lenguaje, existirán comandos para instalar las dependencias. Este comando lo tendrías que conocer tú mismo, si es de PHP dependerá de Composer, si es de NodeJS (o Javascript) dependerá de npm.

Por ejemplo, así reinstalamos las dependencias en un proyecto Angular, que usa npm como gestor de dependencias.

npm install

Pero insisto que esto depende del gestor de dependencias, o gestores de dependencias del proyecto, si es que se están usando.

Subir cambios al repositorio remoto realizados por nosotros

Una vez modificado el código en local podrás querer subir los cambios al repositorio remoto. Es algo muy sencillo, ya que al clonar el repositorio en local está asociado el origen remoto desde donde lo trajiste. Sin embargo, tenemos que llevar en consideración algunos puntos:

  • Dependiendo de la empresa o del equipo de trabajo pueden haber algunas normas para enviar cambios, como por ejemplo trabajar siempre con ramas y enviar los cambios a una rama en concreto, que luego se puede fusionar con un pull request.
  • Si el repositorio que clonaste no es tuyo y no tienes permisos por no pertenecer a una organización que lo posea, obviamente, no podrás enviar cambios.

Nos vamos a quedar aquí en lo sencillo, pensando que: 1) El repositorio es tuyo y 2) que nadie se molesta por enviar cambios directamente a la rama master. Entonces, para enviar cambios a GitHub, o cualquier otro hosting de repositorios, haríamos:

git pull

Con eso se envían los cambios en el instante y los podrás ver reflejados en el repo remoto.

Nota: Obviamente, para que se envíen los cambios del repositorio, local tendrás que haber realizado alguna/s modificación/es en el código del proyecto, y por supuesto las tendrás que haber confirmado con el correspondiente/s commit. Pero esto suponemos que ya lo conoces, como lector del Manual de Git. Puedes encontrar más información sobre esta operativa básica en el artículo sobre ti primer commit.

Cómo enviar cambios a GitHub si el repositorio no es tuyo (vía fork)

Si el repositorio que vas a modificar no es tuyo y pretendes continuar el desarrollo, agregando cambios que querrás enviar a GitHub, tendrías que clonar el repositorio de otra manera.

Primero tienes que crear un "fork". Esto es, un repositorio que es copia de otro que ya está publicado en GitHub. Lo bueno de un fork es que el repositorio será exactamente igual, pero estará en tu cuenta de GitHub, con tu usuario, por lo que tendrás permisos para hacer lo que tú quieras con él.

Hay un botón para hacer el fork en la parte de arriba de la página del repositorio.

Una vez hecho el fork, el repositorio ya te pertenece. Entonces podrás clonar (el fork, no el repositorio original) y realizar los cambios que quieras, que podrás subir perfectamente a ti propio repositorio (tu fork).

En la parte de arriba puedes ver que el repositorio es un fork de otro repositorio existente en GitHub.

El resto del proceso, para descargar el repositorio, modificarlo y enviar los cambios es exactamente igual que lo descrito anteriormente, incluido el "git pull" para enviar los cambios. Solo que ahora, ya que es tu propio repositorio, sí que te dejará actualizar su código en remoto.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Julio Espinosa

10/5/2018
Clonar un repositorio
Hola,
He podido clonar un repositorio sin problemas. Me queda menos clara la parte de hacer el pull o pull request.

Santiago Barquero

16/7/2018
pull o push
Hola,
creo que el commando para subir los cambios al remoto es "git push".
"git pull" es para copia los cambios remoto a nuestro repositorio local.
Un saludo.
Santiago