2011-06-12 33 views
15

He configurado un repositorio git en mi servidor. Creó un nuevo usuario 'git'. Mis repos se encuentran en /srv/git/example.git. Pude git remote add origin [email protected]/srv/git/example.git luego agregué y comprometí mis cambios.¿Cómo arreglar el permiso denegado para .git/directory al ejecutar git push?

Sin embargo cuando intenté git push origin master Fracasó en:

fatal: unable to create temporary file: permission denied' and 'fatal: sha1 file write error: invalid argument'

En el servidor me encontré:

sudo chown -R git:git /srv/git/` 

que esto esté arreglado mi problema, pero me gustaría saber si esto era lo correcto a hacer?

Respuesta

19

On the server I ran sudo chown -R git:git /srv/git/ - this fixed my problem but I am wondering if this was the correct thing to do?

Absolutamente. El problema anteriormente era que el usuario de git, a quien está ingresando como a través de SSH, no podía escribir en el repositorio.

Dependiendo de sus necesidades, puede considerar diferentes combinaciones de usuarios y claves SSH, o uno de los muchos programas adicionales (gitolite, etc.) que se pueden usar para controlar de forma más precisa el acceso.

7

Primero, arregle los permisos del archivo en su control remoto .git dir, ej.

sudo chmod -R ug+w /var/www/.git 
sudo chown -R git:git /var/www/.git 

o root:root si desea asignar los miembros del grupo para acceder root empuje.

repositorio git A continuación, en el host de destino se debe establecer como compartidos, por lo que el siguiente comando en las necesidades remotos ejecutar:

git config core.sharedRepository group 
Cuestiones relacionadas