Acredito que encontrei esse problema porque adicionei e confirmei alterações e excluí um arquivo que havia acabado de confirmar. Se isso parecer semelhante ao seu caso, recomendo seguir o abaixo para salvar a re-clonagem e adicionar manualmente suas alterações.
Consegui corrigir esse problema excluindo o arquivo .git / index no meu repositório, semelhante ao que o @slider sugeriu (acredito que ele digitou errado o caminho).
rm .git/index
Então eu tive que adicionar e confirmar minhas alterações locais novamente
git add -A
git commit -m "..."
Eu era capaz de empurrar remotamente.
O que é o índice git e como é relevante?
Qual é o problema do índice Git?
O "índice" do git é onde você coloca os arquivos que deseja confirmar no repositório git.
Antes de “confirmar” (fazer check-in) os arquivos no repositório git, você precisa primeiro colocar os arquivos no “index” git.
Acredito que, ao excluir este arquivo, o git irá indexar novamente novamente o repo, criar um novo e você estará pronto. Ele resolve esse problema porque o repositório local é re-indexado sem o arquivo que eu excluí que causou todo o barulho.
Edit: Parece que isso está relacionado ao Mac (com base nos comentários), por isso, se ajudar, eu estou no OSX 10.10 e na versão 2.3.4 do git instalada através do brew.