2011-08-13 11 views
54

Uso git en Windows a través de cygwin y pronto decidí usar filemode=false (ya que de lo contrario tengo muchos cambios después de la copia inicial de git). Definitivamente no estoy interesado en el seguimiento del permiso, el único que creo que es necesario para que algunos archivos sean ejecutables. De vez en cuando, me parece que la bandera x en algunos archivos se pierde y supongo que es por git.¿Cómo evitar que git haga archivos no ejecutables en cygwin?

Estaría encantado con una solución que permita ejecutar chmod a+x ... cuando sea necesario.

Respuesta

95

Creo que quiere git update-index --chmod=+x <file>, seguido de una confirmación.

+0

No creo que ayuda, ya que estoy usando 'fileMode = false', así que supongo que tengo que hacer algo después Obteniendo archivos de git (en lugar de ponerlos en git). Algo que se aplica cuando git cambia o crea un archivo. Además, debería ejecutarse automáticamente. – maaartinus

+2

[Los documentos] (http://www.kernel.org/pub/software/scm/git/docs/git-update-index.html#_configuration) recomiendan específicamente este comando para los sistemas donde filemode = false. Si lo entiendo correctamente, esa configuración solo se aplica a la detección _automatic_ de los cambios de permisos. Git aún almacena un modo de archivo, que es la primera columna cuando haces un 'git ls-tree HEAD'. Si aparece como 644 en lugar de 755, entonces git no configurará el bit ejecutable cuando escriba ese archivo. –

+0

Veo que no estaba entendiendo 'filemode = false'. De alguna manera, pensé, desactivaría el almacenamiento de los bits, pero "las diferencias de bit ejecutables entre el índice y la copia de trabajo se ignoran" en su lugar. – maaartinus

4

He encontrado el mismo problema. git update-index --chomd = + x no funciona para mí.

Uso chmod + x, luego confirmo, funciona perfecto.

+0

O use update-index, commit, revise el archivo nuevamente. –

5

Debe comenzar con git update-index --chmod=+x <file>.

Pero esto no cambia su copia de trabajo, para que:

git checkout . 
Cuestiones relacionadas