Aprende a clonar un repositorio Git que se encuentra alojado en GitHub. El comando es git clone, muy sencillo de usar. Sin embargo también es importante saber cómo restaurar las dependencias de los proyectos una vez clonado el repo.
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.
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 push
Con eso se envían los cambios en el instante y los podrás ver reflejados en el repo remoto.
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 push" para enviar los cambios. Solo que ahora, ya que es tu propio repositorio, sí que te dejará actualizar su código en remoto.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...