O problema é que você tem master feito check-out no servidor, portanto não é possível enviar master para o servidor. Existem três maneiras diferentes de lidar com isso:
O caminho certo é começar de novo com um repositório --bare se você for trabalhar remotamente. Repositórios nus não possuem um diretório "work tree" / working, o que significa que o repositório nunca terá nenhuma ramificação registrada no próprio servidor. Veja a FAQ do Git :
never push into a repository that has a work tree attached to it, until you know what you are doing
A maneira fácil de fazê-lo funcionar a partir de onde você está agora é simplesmente criar uma ramificação falsa e fazer o check-out no servidor, para que o diretório de trabalho no servidor seja definido como uma ramificação diferente de master nunca tentarei empurrar do cliente.
O Modo Difícil requer que você crie um acionador que redefina seu diretório de trabalho no servidor (você perderá quaisquer mudanças não confirmadas no servidor) (exemplo gatilho shell script aqui ) e configure o git para desabilitar o erro que você obteve com git config receive.denyCurrentBranch ignore . Isso é usado quando você está usando o git para uma página da Web que você está editando remotamente . Novamente, veja o FAQ acima, se você apenas desabilitar o erro e não configurar o gancho pós-recebimento, sua árvore de trabalho não será atualizada para você e você terá que git reset --hard no servidor se você quiser ver o erro arquivos que você empurrou para lá.