Quando você altera algumas permissões de arquivo, git detecta e marca como alterado. Agora, imagine que você deseja reverter algumas permissões de arquivo em um sistema git.
git diff --summary
da-te
mode change 100644 => 100755 Zend/Crypt/DiffieHellman.php
mas não informa se o conteúdo também mudou (AFAIK)
Você pode gerar os nomes dos arquivos que têm alterações (+++ / —) e também alterações de permissão:
git diff --summary |grep 'mode change ' | awk '{print $6}' |
while read file_; do
diffed=`git diff $file_|egrep '+++|---'|wc -l`;
if test 0 -ne $diffed; then
echo $file_;
fi;
done
Você pode decidir submeter esses arquivos primeiro e então submeter / reverter o resto, já que não há mais alterações.