git: ¿cómo puedo configurar git para ignorar los cambios en los permisos de archivos?

21

Tengo algunos proyectos git en un servidor Linux.

Yo uso Mac y Linux para hacer mi programación. el problema es que los permisos del sistema de archivos del mac no funciona muy bien como en Linux por lo que todos los archivos parece estar en la máscara de usuario 0755. así que cuando me tire mi código en mi mac, git statusmuestra que se cambian todos mis archivos y cuando uso git diffse muestra que el único cambio está en la umask. ¿Cómo puedo decirle a Git que no almacene y verifique los cambios de umask?

¡Gracias!

ufk
fuente
1
Estoy bastante seguro de que OS X admite permisos de estilo Unix ...
Grawity
1
umask y los permisos no son lo mismo. ¿Estás seguro de que realmente sabes lo que estás haciendo aquí?
Marnen Laibow-Koser

Respuestas:

28

Establezca la core.fileModepropiedad de configuración en false. Puede hacerlo fácilmente con este comando:

git config core.fileMode false
Parches
fuente
¿Es esta una configuración por repositorio o es posible hacer que esto funcione globalmente?
acme
2
@acme: Al igual que todas las configuraciones de git, puede configurarlo por repositorio, por usuario o en todo el sistema, sin pasar ningún interruptor adicional --global, o --system, respectivamente. Ver git help configpara más detalles.
Parches el
¡Gracias! Pero configurarlo globalmente no agrega automáticamente esta configuración a los nuevos repositorios, ¿es solo una configuración en mi máquina local?
acme
@acme: Sí, configurar una opción --globalafecta a todas las operaciones en cualquier repositorio al que se acceda localmente con su cuenta de usuario. No afecta a nadie más. Para configurarlo para todos los usuarios de un repositorio particular, tendría que alternar la configuración por repositorio en el servidor al que todos presionan.
Parches
1

Tengo un pequeño script de shell para alternar esto

cat ~ / bin / git-ignore-chmod-toggle

#!/bin/bash
# Copyright 2015 Alexx Roche, MIT license.
# based on http://superuser.com/a/261076

gitCHMODstate=$(git config --get core.fileMode)

# toggle with git config core.fileMode true 

if [ $gitCHMODstate == 'true' ];then
    echo "git now ignores file mode (chmod)"
    git config core.fileMode false
else
    echo "git not looks for files modes changed with chmod"
    git config core.fileMode true
fi

Con esto puedo alternar git, verificar otros cambios y luego volver a ponerlo rápidamente.

Alexx Roche
fuente