Проблема полномочий мерзавца

У меня есть некоторая проблема полномочий мерзавца, и я надеюсь, что кто-то может помочь. Каждый раз, когда я пытаюсь фиксировать, я получаю следующее:

error: insufficient permission for adding an object to repository database .git/objects
error: Error building trees

Я посмотрел на несколько предложений для разрешения этого, и они в основном кипят для проверки не полномочий, повреждаются в .git папке. Я подтвердил, что у меня есть полномочия для всего. Я также проверил вывод git config core.sharedRepository true.

У кого-либо есть какие-либо предложения?

2
задан 9 December 2016 в 04:03

1 ответ

Вы так или иначе или смешали полномочия или владельца или группу. Последний оба должен быть Вашим пользователем или группой Вашего пользователя соответственно.

Открывают терминал в Вашем repo или перешли в него. Затем выполните эти команды:

sudo chown -R david .git
sudo chgrp -R david .git

Это сделает Вас владельцем и Вашей группой группа всех файлов в .git папка. Принятие Вашего имени пользователя david, конечно. Если это не, измените его. У Вашей группы есть то же имя как Ваш пользователь. Если Вы хотите применить это к своему всему repo, просто замените .git . (единственный период).

, Если это не решает проблему, выполните эти строки:

find .git -type d -exec chmod 755 {} +
find .git -type f -exec chmod 644 {} +

первая строка дает Вам полные полномочия для всех каталогов и второго полномочия читать из и записать в файлы в .git папка. Первая строка может распечатать ошибки, сообщив Вам †“еще раз †“о недостаточных полномочиях, потому что find не может идти в папки, прежде чем их полномочия были установлены правильно (если они установлены полностью неправильно). Если это происходит, выполните первую команду снова (прежде чем, выполняя вторую команду), пока она больше не печатает ошибки. Можно, конечно, избежать этого путем выполнения первой команды как root (sudo find .git -type d -exec chmod 755 {} +). Затем это пробежит без ошибок в первый раз в любом случае.

вторая команда делает все файлы в .git неисполняемый файл папки. Это не проблема Вас, не используют рычаги. Если Вы делаете, Вы, вероятно, хотите выполниться

chmod +x .git/hooks/*

впоследствии, чтобы дать рычагам выполнить биты назад. Если Вы не даете им, они отступают, Ваши рычаги не будут больше выполняться. Выполнение этого, если Вы не используете рычаги, не причиняет вреда.

3
ответ дан 2 December 2019 в 02:49

Другие вопросы по тегам:

Похожие вопросы: