Aprenda a viver com o designer tendo acesso ao código (eles não podem mudar nada sem deixar um registro dele, pelo menos), ou então divida as coisas que eles precisam acessar em um repositório separado e inclua isso no seu projeto principal como um submódulo. Você pode usar git filter-branch
para remover as partes do repositório que você não deseja que o designer tenha acesso no repositório separado.