posh para for espaƱol windows git powershell github-for-windows

windows - para - install git powershell



En Windows git: "error: salida escasa no deja ninguna entrada en el directorio de trabajo" (1)

Tuve el error:

“error: Sparse checkout leaves no entry on the working directory”

cuando intentas configurar un pago escaso en git en Windows. Respondí mi propia pregunta después de investigar el problema y encontrar la respuesta completa repartida por la web.


tl; dr

Desde la carpeta en la que desea que la fuente viva, utilizando un indicador de git-bash NOT powershell (aunque vea mi edición a continuación):

git clone –n <repo> <local-directory-name> cd <local-directory-name> git config core.sparsecheckout true echo some/sub-folder/you/want >> .git/info/sparse-checkout git checkout <branch-name>

Explicación completa

Los pagos dispersos le permiten trabajar en un subconjunto del repositorio. ¡Vale la pena el esfuerzo de configurar escalas dispersas en repositorios grandes, todo es mucho más rápido!

Tuve problemas para configurarlo en Windows obteniendo una gran cantidad de "errores: la salida dispersa no deja ninguna entrada en el directorio de trabajo". Después de investigar un poco, descubrí que los siguientes pasos eran mínimos y que siempre obtuve buenos resultados: YMMV.

El punto más importante es este: NO USE POWERSHELL / CMD PARA ESTOS PASOS: use un indicador de git bash. Esto se debe a que, de lo contrario, el comando echo produce un archivo UNICODE con un marcador BOM. El archivo DEBE ser un archivo con formato ANSI con terminaciones de línea de estilo UNIX para que git lo analice correctamente. Esta es la causa más probable de los errores "error: salida escasa no deja entrada en el directorio de trabajo".

  1. De un padre del directorio que desea ser la carpeta raíz, suponiendo que el nombre de una carpeta de "src" haga lo siguiente, Esto capta todo el repositorio (que aún se requiere), pero lo que es importante no realiza una extracción, y establece correctamente hasta el origen remoto y seguimiento de rama.

    git clone –n <your repository> src

  2. Deberías tener una carpeta src bastante vacía (tendrá la carpeta oculta .git). Ahora ejecuta lo siguiente. Esto actualiza la configuración de git local para activar las descargas dispersas y crea un archivo en la carpeta oculta .git / info que mostrará una lista de todas las carpetas que desea incluir al realizar un proceso de pago disperso. Esto se puede editar más tarde para agregar otras carpetas. Importante : asegúrese de usar un indicador de git bash para lo siguiente, y use un editor que admita las convenciones de final de línea de Unix y guarde como ANSI cuando edite el archivo de salida dispersa, o puede obtener "error: el pago disperso no deja entrada en el "errores del directorio de trabajo". La <path you want to checkout> podría verse así: path/to/subfolder - tenga en cuenta la falta de separadores de ruta principal y final.

    cd src git config core.sparsecheckout true echo <path you want to checkout> >> .git/info/sparse-checkout

  3. Ahora estás listo para pagar. Esto debería dejar solo las carpetas de check-sparse dispersas. Si no es así, ¡revise cuidadosamente la ortografía de todo lo anterior!

    git checkout <branch-name>

Editar - Echo en Powershell

Recientemente descubrí que echo en powershell es un sinónimo para write-output. Es posible obtener salida ASCII conectando el eco al comando out-file que le permite especificar una codificación. Así que esto funcionará desde Powershell y dará los contenidos correctos del archivo:

echo some/sub/folder/you/want | out-file -encoding ascii .git/info/sparse-checkout