Depois de adicionar algumas coisas ... confirme-as e, depois de tudo terminado, empurre! BANG !! Inicie todos os problemas ... Como você deve notar, existem algumas diferenças na maneira como os projetos novos e os existentes foram definidos. Se outra pessoa tentar adicionar / confirmar / enviar os mesmos arquivos ou conteúdo (o git mantém os dois mesmos objetos), enfrentaremos o seguinte erro:
$ git push
Counting objects: 31, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (17/17), done.
Writing objects: 100% (21/21), 2.07 KiB | 0 bytes/s, done.
Total 21 (delta 12), reused 0 (delta 0)
remote: error: insufficient permission for adding an object to repository database ./objects remote: fatal: failed to write object
Para resolver esse problema, é necessário ter em mente o sistema de permissões do sistema operacional, pois neste caso você é restringido por ele. Você entende melhor o problema, vá em frente e verifique a pasta do seu objeto git (.git / objects). Você provavelmente verá algo assim:
<your user_name>@<the machine name> objects]$ ls -la
total 200
drwxr-xr-x 25 <your user_name> <group_name> 2048 Feb 10 09:28 .
drwxr-xr-x 3 <his user_name> <group_name> 1024 Feb 3 15:06 ..
drwxr-xr-x 2 <his user_name> <group_name> 1024 Jan 31 13:39 02
drwxr-xr-x 2 <his user_name> <group_name> 1024 Feb 3 13:24 08
* Observe que as permissões desse arquivo foram concedidas apenas para seus usuários, ninguém nunca poderá alterá-lo ... *
Level u g o
Permission rwx r-x ---
Binary 111 101 000
Octal 7 5 0
RESOLVER O PROBLEMA
Se você tiver permissão de superusuário, poderá avançar e alterar todas as permissões usando a etapa dois; em qualquer outro caso, você precisará solicitar a todos os usuários com objetos criados com seus usuários, use o comando a seguir para saber quem eles são :
$ ls -la | awk '{print $3}' | sort -u
<your user_name>
<his user_name>
Agora você e todos os usuários proprietários do arquivo terão que alterar a permissão desses arquivos, fazendo:
$ chmod -R 774 .
Depois disso, você precisará adicionar uma nova propriedade equivalente a --shared = group feita para o novo repositório, de acordo com a documentação, tornando o repositório gravável em grupo, faça-o executando:
$ git config core.sharedRepository group
https://coderwall.com/p/8b3ksg
git add
egit commit
-ing como usuário root. Corrigi-o com umagit reset
resposta e esta pergunta para corrigir as.git
permissões de diretório.