Creo que el problema es que MSYS, sobre el que se basa la aplicación de Windows de git, no maneja adecuadamente chmod
.
(EDIT: La otra respuesta dice MSYS no es el problema, lo que ciertamente parece plausible.)
Mi conjetura es que el comando
git update-index --add --chmod=+x test-file
obras de actualización de los metadatos en el repositorio local (que debería funcionar) y cambiar los permisos en el archivo (que no), poniendo el repositorio local en un estado incoherente.
Usted debe ser capaz de retirarse de esta deshaciendo el update-index
:
git update-index --add --chmod=-x test-file
git commit -m 'change mode back'
git push
para obtener el repositorio de nuevo en un estado coherente, y luego hacer el cambio en una copia que no sea Windows del repositorio. Si no tiene acceso a un sistema Linux u otro similar a Unix, Cygwin incluye git
(no de forma predeterminada, pero puede instalarlo a través del setup.exe
) y le proporciona un entorno en el que chmod
realmente funciona. El shell predeterminado para Cygwin es bash, por lo que el entorno debería ser familiar si has estado usando git bash.
El archivo aún no parece ejecutable cuando lo mira desde el shell git bash, pero debería aparecer como 100755
en la interfaz web de GitHub.