Tratar:
git config core.fileMode false
Desde git-config (1) :
core.fileMode
Tells Git if the executable bit of files in the working tree
is to be honored.
Some filesystems lose the executable bit when a file that is
marked as executable is checked out, or checks out a
non-executable file with executable bit on. git-clone(1)
or git-init(1) probe the filesystem to see if it handles the
executable bit correctly and this variable is automatically
set as necessary.
A repository, however, may be on a filesystem that handles
the filemode correctly, and this variable is set to true when
created, but later may be made accessible from another
environment that loses the filemode (e.g. exporting ext4
via CIFS mount, visiting a Cygwin created repository with Git
for Windows or Eclipse). In such a case it may be necessary
to set this variable to false. See git-update-index(1).
The default is true (when core.filemode is not specified
in the config file).
El -c
indicador se puede usar para configurar esta opción para comandos únicos:
git -c core.fileMode=false diff
Y la --global
bandera hará que sea el comportamiento predeterminado para el usuario conectado.
git config --global core.fileMode false
Los cambios de la configuración global no se aplicarán a los repositorios existentes. Adicionalmente, git clone
y git init
establecer explícitamente core.fileMode
que true
en la configuración de recompra como se discutió en Git falsa mundial core.fileMode reemplazado de forma local en el clon
Advertencia
core.fileMode
no es la mejor práctica y debe usarse con cuidado. Esta configuración solo cubre el bit de modo ejecutable y nunca los bits de lectura / escritura. En muchos casos, cree que necesita esta configuración porque hizo algo como chmod -R 777
hacer que todos sus archivos sean ejecutables. Pero en la mayoría de los proyectos, la mayoría de los archivos no necesitan y no deben ser ejecutables por razones de seguridad .
La forma correcta de resolver este tipo de situación es manejar los permisos de carpetas y archivos por separado, con algo como:
find . -type d -exec chmod a+rwx {} \; # Make folders traversable and read/write
find . -type f -exec chmod a+rw {} \; # Make files read/write
Si haces eso, nunca necesitarás usarlo core.fileMode
, excepto en un entorno muy raro.