tag son sistema remove por permitido origen nombres más los largos crear archivos windows git

windows - son - git tag remove



Nombre de archivo demasiado largo en Git para Windows (11)

Mueva el repositorio a la raíz de su disco (arreglo temporal)

Puede intentar mover temporalmente el repositorio local (la carpeta completa) a la raíz de su unidad o lo más cerca posible de la raíz.

Como la ruta es más pequeña en la raíz de la unidad, a veces soluciona los problemas.

En Windows, movería esto a C:/ u otra raíz de la unidad.

Estoy usando Git-1.9.0-preview20140217 para Windows. Como sé, esta versión debería solucionar el problema con nombres de archivos demasiado largos. Pero no para mí.

Seguramente estoy haciendo algo mal: hice git config core.longpaths true y git add . y luego git commit . Todo salió bien. Pero cuando ahora hago un git status , obtengo una lista de archivos con Filename too long , por ejemplo:

node_modules/grunt-contrib-imagemin/node_modules/pngquant-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-handle-source-errors.js: Filename too long

Para mí, es muy sencillo de reproducir: simplemente cree una aplicación web Yeoman con el generador Angular ("yo angular") y elimine node_modules del archivo .gitignore . Luego repite los comandos Git antes mencionados.

¿Que me estoy perdiendo aqui?


Pasos a seguir:

  1. Iniciar Git Bash como administrador
  2. Ejecute el comando git config --system core.longpaths true

Lea más sobre git config here .


Crea .gitconfig y agrega

[core] longpaths = true

Puede crear el archivo en una ubicación del proyecto (no está seguro) y también en la ubicación global. En mi caso, la ubicación es C:/Users/{name}/ .


Debes poder ejecutar el comando

git config --system core.longpaths true

o agréguelo a uno de sus archivos de configuración de Git manualmente para activar esta funcionalidad, una vez que esté en una versión compatible de Git. Parece que tal vez 1.9.0 y después.


Esto podría ayudar:

git config core.longpaths true

Explicación básica: esta respuesta sugiere que no se aplique dicha configuración al sistema global (a todos los proyectos, evitando así las --system o etiqueta --global ). Este comando solo resuelve el problema siendo específico para el proyecto actual.


Git tiene un límite de 4096 caracteres para un nombre de archivo, excepto en Windows cuando Git se compila con msys. Utiliza una versión anterior de la API de Windows y hay un límite de 260 caracteres para un nombre de archivo.

Por lo que entiendo, es una limitación de msys y no de Git. Puede leer los detalles aquí: https://github.com/msysgit/git/pull/110

Puede evitar esto usando otro cliente Git en Windows o establecer core.longpaths en true como se explica en otras respuestas.

git config --system core.longpaths true


La mejor solución es habilitar el parámetro longpath de Git.

git config --system core.longpaths true

Pero una solución que funciona es eliminar la carpeta node_modules de Git:

$ git rm -r --cached node_modules $ vi .gitignore

Agregue node_modules en una nueva fila dentro del archivo .gitignore. Después de hacer esto, empuje sus modificaciones:

$ git add .gitignore $ git commit -m "node_modules removed" $ git push


Para estar completamente seguro de que surta efecto inmediatamente después de que se inicializa el repositorio, pero antes de que se recupere el historial remoto o se extraiga cualquier archivo, es más seguro usarlo de esta manera

git clone -c core.longpaths=true <repo-url>

-c clave = valor

Establecer una variable de configuración en el repositorio de nueva creación; esto tiene efecto inmediatamente después de que se inicializa el repositorio, pero antes de que se recupere el historial remoto o de que se extraiga cualquier archivo. La clave está en el mismo formato que espera git-config 1 (por ejemplo, core.eol = true). Si se dan varios valores para la misma clave, cada valor se escribirá en el archivo de configuración. Esto hace que sea seguro, por ejemplo, agregar refspecs de recuperación adicionales al remoto de origen.

1


Si está trabajando con su partición encriptada, considere mover la carpeta a una partición sin encriptar, por ejemplo a / tmp , ejecutar git pull , y luego retroceder.


También puede intentar habilitar rutas de archivo largas.

Si ejecuta Windows 10 Home Edition, puede cambiar su Registro para habilitar las rutas largas.

Vaya a HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/FileSystem en regedit y luego establezca LongPathsEnabled en 1 .

Si tiene Windows 10 Pro o Enterprise, también puede usar políticas de grupo local.

Vaya a Configuración del equipoPlantillas administrativasSistemaSistema de archivos en gpedit.msc , abra Habilitar rutas largas de Win32 y configúrelo como Habilitado .


También tuve este error, pero en mi caso la causa estaba usando una versión desactualizada de npm, v1.4.28.

Actualización a npm v3 seguido de

rm -rf node_modules npm -i

trabajó para mi. npm número 2697 tiene detalles de la estructura de carpetas "totalmente plana" incluida en npm v3 (publicado el 2015-06-25).