Как исправить разрешение, запрещенное для каталога .git / при выполнении git push? - PullRequest
15 голосов
/ 12 июня 2011

Я установил git-репозиторий на моем сервере. Создан новый пользователь 'git'. Мои репозитории находятся в /srv/git/example.git. Я смог git remote add origin git@domain/srv/git/example.git, затем я добавил и передал свои изменения.

Однако, когда я попытался git push origin master, это не удалось:

fatal: невозможно создать временный файл: разрешение запрещено 'и' fatal: ошибка записи файла sha1: неверный аргумент '

На сервере я запускал:

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

Это решило мою проблему, но мне интересно, было ли это правильно?

Ответы [ 2 ]

20 голосов
/ 12 июня 2011

На сервере я запустил sudo chown -R git: git / srv / git / - это решило мою проблему, но мне интересно, было ли это правильно?

Абсолютно. Ранее проблема заключалась в том, что пользователь git, который входит в систему как через SSH, не мог писать в хранилище.

В зависимости от ваших потребностей вы можете рассмотреть различные комбинации пользователей и ключей SSH или одну из множества дополнительных программ (gitolite и т. Д.), Которые можно использовать для более точного управления доступом.

9 голосов
/ 30 апреля 2014

Сначала исправьте права доступа к файлу на вашем пульте .git dir, например.

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

или root:root, если вы хотите назначить членов группы root для push-доступа.

Затем git-репозиторий на целевом хосте должен быть установлен как общий, поэтому необходимо выполнить следующую команду на удаленном компьютере:

git config core.sharedRepository group
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...