Al ir a continuar el trabajo en un tema de WordPress hice un
git status
para ver como tenía sincronizado el trabajo con el repositorio local y vi que tenía modificados unos cuantos archivos que no recordaba haberlos tocado últimamente. Por ejemplo, el archivo de la licencia, gpl-2.0.txt
Al hacer un
git diff gpl-2.0.txt
para ver los cambios realizados desde el último commit en el archivo gpl-2.0.txt, el resultado era el siguiente
diff ––git a/gpl-2.0.txt b/gpl-2.0.txt
old mode 100644
new mode 100755
Si os fijáis, lo que hay es un cambio en los permisos del archivo, cambiados al ejecutar un
sudo chmod 775 * -R
Para evitar estos problemas y que git ignore los cambios en los permisos de los archivos, simplemente hay que ejecutar:
git config ––global core.filemode false
Si este comando no te funciona, prueba a añadir el parámetro ––add:
git config ––add ––global core.filemode false
Recuerda que el parámetro ––global funciona a nivel de usuario, por lo que este parámetro afectará a todos tus repositorios locales. Si ejecutamos
cat ~/.gitconfig
podemos ver que aparece la configuración en ese archivo
[core]
filemode = false
En la documentación de Git podéis ver la descripción de este parámetro de configuración
core.fileMode
If false, the executable bit differences between the index and the working tree are ignored; useful on broken filesystems like FAT. See git-update-index(1).
The default is true, except git-clone(1) or git-init(1) will probe and set core.fileMode false if appropriate when the repository is created.