Como ignorar mudanças de permissão do CHMOD no GIT?

linux  git 

Vez ou outra, sempre tive problemas com alteração de permissões no GIT. Um amigo que trabalhava no mesmo projeto que eu costumava usar o usuário root do linux para muitas coisas, inclusive para abrir o Sublime Text e editar os arquivos do projeto.

Acontece que, quando ele ia dar o git commit e git push, além das modificações de arquivos, chegavam para mim os arquivos com restrições de edição, geralmente criadas pelo comando chmod. Para resolver isso, eu aplicava o chmod -R 777 para poder editar esses arquivos.

O problema é que, quando eu fazia isso, ao rodar o comando git status, aparecia uma lista de arquivos que eu nem tinha mexido constando como tendo alterações. Isso porque o Git estava reconhecendo as alterações da permissão pelo chmod como uma modificação.

Solucionando o problema

Para solucionar isso, descobri que existe uma configuração no GIT que faz as modificações de permissões serem ignoradas. Ele permite configurar localmente (por projeto/repositório) ou globalmente.

Globalmente:

git config --global core.filemode false

Localmente:

cd repositorio-desejado
git config core.filemode false

Após fazer isso, use git status para ver se a configuração funcionou corretamente.

Observação: No meu caso, a configuração global geralmente não afetava a configuração já vigente, sendo necessário sempre executar o segundo exemplo demonstrado.