Seu problema aqui é que você está usando o git como uma ferramenta de implantação, que não é. Git é para controle de versão, e é isso. Quando você quiser implantar seu código em algum lugar, você deve usar um script ou um produto pré-criado para verificar o ramo correto, copiar arquivos relevantes, compilar tudo o que possa precisar de compilação e, no seu caso, definir permissões. / p>
Existem várias maneiras de fazer isso. Existem servidores de compilação comerciais, como o TeamCity ou o Jenkins / Hudson (e muitos outros semelhantes), que têm todos os tipos de funcionalidades incorporadas para implementação.
Como alternativa, você pode usar um gancho git no seu servidor git para chamar um script que faça a cópia e a configuração de permissão para você. Este gancho precisaria ser executado como um usuário que tem as permissões corretas para chown / chmod, obviamente, mas você pode conseguir isso com segurança com as chaves ssh.