Après avoir ajouté des trucs ... engagez-les et après tout, poussez-les! COUP!! Commencez tous les problèmes ... Comme vous devez le remarquer, il existe des différences dans la définition des projets nouveaux et existants. Si une autre personne essaie d'ajouter / valider / pousser les mêmes fichiers ou contenus (git conserve les deux comme les mêmes objets), nous ferons face à l'erreur suivante:
$ 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
Pour résoudre ce problème, vous devez avoir quelque chose à l'esprit du système d'autorisations du système opérationnel car vous êtes limité par lui dans ce cas. Vous comprenez mieux le problème, allez-y et vérifiez le dossier de votre objet git (.git / objects). Vous verrez probablement quelque chose comme ça:
<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
* Notez que les autorisations de ces fichiers ont été accordées uniquement pour vos utilisateurs, personne ne pourra jamais les modifier ... *
Level u g o
Permission rwx r-x ---
Binary 111 101 000
Octal 7 5 0
RÉSOUDRE LE PROBLÈME
Si vous disposez d'une autorisation de super-utilisateur, vous pouvez aller de l'avant et modifier toutes les autorisations par vous-même en utilisant la deuxième étape, dans tous les autres cas, vous devrez demander à tous les utilisateurs avec des objets créés avec leurs utilisateurs, utilisez la commande suivante pour savoir qui ils sont. :
$ ls -la | awk '{print $3}' | sort -u
<your user_name>
<his user_name>
Maintenant, vous et tous les utilisateurs propriétaires du fichier devrez modifier l'autorisation de ces fichiers en procédant comme suit:
$ chmod -R 774 .
Après cela, vous devrez ajouter une nouvelle propriété équivalente à --shared = group effectuée pour le nouveau référentiel, selon la documentation, cela rendra le groupe du référentiel accessible en écriture, exécutez-le:
$ git config core.sharedRepository group
https://coderwall.com/p/8b3ksg
git add
etgit commit
-ing en tant qu'utilisateur root. Je l'ai corrigé avec ungit reset
et la réponse à cette question pour corriger les.git
autorisations de répertoire.