Clonar directorios independientes con Git

Cuando trabajamos con repositorios Git podemos encontrarnos en la situación de tener que realizar alguna tarea en la que necesitemos modificar algún fichero del repositorio, pero por alguna razón no queremos descargar el repositorio entero. Bien sea porque el repositorio es muy grande, o porque el lugar en el que estemos clonando solo precisa ciertas partes del mismo.

Sparse Checkouts + Shallow Clones

Desde la versión 1.7 de Git se pueden realizar los llamados “sparse checkouts” que nos permitirán hacer checkout de solo las carpetas que indiquemos. A continuación detallamos los pormenores de su utilización.

1- Iniciamos un repositorio vacío, estableciendo la de nuestro repositorio como repositorio remoto:

2- Activamos la opción sparseCheckout:

3- Definimos los ficheros y carpetas que queremos sincronizar. Para ello haremos uso del fichero .git/info/sparse-checkout del mismo modo que hacemos con .gitignore, es decir, escribiendo los distintos ficheros y carpetas en lineas diferentes.

Desde este punto podemos continuar de dos formas:

a) Actualizamos el repositorio clonando desde la url remota:

Esto descargará la carpeta .git completa, pero solo mostrará las carpetas que hayamos establecido en el fichero sparse-checkout. Esto es así porque por defecto cualquier clonado obtiene no solo los ficheros del repositorio, si no todos los ficheros de todos los commits realizados a lo largo de la vida del mismo.

b) Desde la versión 1.9 de Git podemos realizar un git pull superficial, también llamado “shallow clone“. Esto nos permitirá establecer la profundidad del clonado, de tal forma, que al establecer una profundidad de 1, solo se descargará lo referente a la última revisión:

Este comando es, por tanto, más apropiado para el propósito que queremos conseguir. Además, puede disminuir hasta en un 90% el tamaño de cada descarga.

Prueba tu habilidad con el Reto Madiva

Considere un dado, con cada una de sus seis caras numeradas del 1 al 6.
Supongamos que 12 de esos dados se unen para generar una forma sólida y rectangular. Para cada configuración posible se suman todos los números de las caras exteriores de la figura.

¿Cuál es la suma más pequeña de entre todas las configuraciones posibles?

Una vez obtengas la solución introdúcela en la url de la siguiente forma, http://madivachallenge.appspot.com/tusoluciónaquí

Madiva Challenge