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
.
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:
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 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