Você de alguma forma estragou as permissões ou o proprietário ou o grupo. Este último deve ser o seu usuário ou o grupo do usuário, respectivamente.
Abra um terminal em seu repositório ou navegue nele. Então execute estes comandos:
sudo chown -R david .git
sudo chgrp -R david .git
Isso fará de você o proprietário e seu grupo o grupo de todos os arquivos na pasta .git
. Supondo que seu nome de usuário seja david
, é claro. Se não for, mude. Seu grupo tem o mesmo nome que seu usuário. Se você quiser aplicar isso ao seu repositório inteiro, basta substituir .git
por .
(um único período).
Se isso não resolver o problema, execute estas linhas:
find .git -type d -exec chmod 755 {} +
find .git -type f -exec chmod 644 {} +
A primeira linha fornece permissões completas para todos os diretórios e a segunda, as permissões para ler e gravar em arquivos na pasta .git
. A primeira linha pode imprimir erros, informando-o - mais uma vez - sobre permissões insuficientes porque find
não pode entrar em pastas antes que suas permissões tenham sido configuradas corretamente (se forem definidas totalmente erradas). Se isso acontecer, execute o primeiro comando novamente (antes de executar o segundo comando) até que ele não imprima mais erros. Evidentemente, você pode evitar isso executando o primeiro comando como root
( sudo find .git -type d -exec chmod 755 {} +
). Então, ele será executado sem erros na primeira vez em qualquer caso.
O segundo comando torna todos os arquivos na pasta .git
não executáveis. Este não é um problema de você não usar ganchos. Se você fizer isso, você provavelmente quer executar
chmod +x .git/hooks/*
depois para dar os ganchos os bits de execução de volta. Se você não der a eles de volta, seus ganchos não serão mais executados. Fazer isso se você não usar ganchos não faz mal.