Tirar de una carpeta específica en Git

John Wachira 15 febrero 2024
Tirar de una carpeta específica en Git

Este artículo ilustra cómo podemos extraer una carpeta específica de un repositorio Git remoto. Este enfoque es útil cuando queremos trabajar en algunos archivos de un repositorio grande.

Puede ahorrar mucho tiempo descargando una sola carpeta desde un repositorio de 2 GB. Sin más preámbulos, entremos de inmediato.

Tirar de una carpeta específica en Git

La ruta más fácil que podemos usar para extraer una carpeta específica implica el uso de la función Sparse Checkout de Git. Podemos explicar el concepto, pero un ejemplo es apropiado para este escenario.

En el siguiente ejemplo, tenemos un repositorio remoto alojado en GitHub con docenas de archivos organizados en directorios. Queremos tirar y trabajar en la carpeta aplicaciones.

repositorio remoto

Seguiremos los pasos a continuación para extraer la carpeta aplicaciones.

En Git Bash, crearemos un directorio para almacenar nuestra carpeta de aplicaciones.

$ mkdir Djangp-datta-able

Navegue a su directorio usando el comando cd e inicialice un repositorio Git.

$ git init

Aquí están los contenidos actuales de nuestro repositorio local.

$ ls -la
total 4
drwxr-xr-x 1 pc pc 0 Aug 31 09:45 ./
drwxr-xr-x 1 pc pc 0 Aug 31 09:44 ../
drwxr-xr-x 1 pc pc 0 Aug 31 09:45 .git/

A continuación, agregaremos el repositorio remoto del que queremos extraer a nuestro repositorio local. Correremos:

$ git remote add origin https://github.com/app-generator/django-datta-able.git

Una vez hecho esto, podemos proceder a habilitar las propiedades de pago disperso en nuestro repositorio. Usaremos el comando git config, como se muestra a continuación.

$ git config core.sparsecheckout true

Luego podemos agregar la carpeta apps a la propiedad sparse checkout, como se muestra a continuación.

$ echo 'apps' >> .git/info/sparse-checkout

Puede reemplazar aplicaciones con el directorio del que desea extraer. También puede agregar varios directorios a la función de pago disperso.

Lo que queda es extraer del repositorio remoto. Correremos:

$ git pull origin master

El comando anterior buscará la carpeta aplicaciones y la clonará en nuestro directorio local. Revisemos el contenido de nuestro repositorio local.

$ ls -la
total 8
drwxr-xr-x 1 pc pc 0 Aug 31 09:49 ./
drwxr-xr-x 1 pc pc 0 Aug 31 09:44 ../
drwxr-xr-x 1 pc pc 0 Aug 31 09:50 .git/
drwxr-xr-x 1 pc pc 0 Aug 31 09:49 apps/

Puedes ver que nuestro repositorio local ahora tiene la carpeta apps/. Al revisar nuestro directorio, encontraremos:

carpeta de aplicaciones en el directorio

Ahí tienes. Hemos extraído con éxito una sola carpeta del repositorio remoto.

Ahora podemos modificar el código, confirmarlo y devolverlo al repositorio remoto.

Antes de despedirnos, hay otro método que podemos emplear, que discutiremos en breve. Sin embargo, el método que estamos a punto de discutir no nos permitirá modificar el código y devolverlo al control remoto.

Después de agregar el repositorio remoto a su repositorio local, ejecute el comando git fetch y consulte la carpeta de interés, como se muestra a continuación.

$ git checkout HEAD path/to/your/dir/or/file

Obtuvimos el método anterior de Stack Overflow, y solo muestra que puede extraer una carpeta específica de un repositorio remoto. Use la función de pago disperso si desea modificar, confirmar y retroceder al control remoto.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Artículo relacionado - Git Pull