4

Итак, недавно Windows решила поработать со мной и сделать невозможным фиксацию в моем git-репозитории.

Это дает мне эту ошибку в git (в Cygwin):

$ git commit -a
error: insufficient permission for adding an object to repository database .git/objects

error: NVG510Fixer/NVG510Fixer/Resources/layout/WarningConfirmation.axml: failed to insert into database
error: unable to index file NVG510Fixer/NVG510Fixer/Resources/layout/WarningConfirmation.axml
fatal: updating files failed

Хорошо ... но затем я захожу в папку NVG510Fixer и рекурсивно беру на себя ответственность за все, что там находится, и проверяю, что все имеют полный контроль. Кажется, это работает, но это не устраняет ошибку. Итак, я решил зайти в .git и щелкнуть правой кнопкой мыши по свойствам и оттуда взять в собственность (рекурсивно). На данный момент, это становится еще более странным:

Что, черт возьми, делает Windows ?! Я администратор. Этот компьютер даже не подключен к домену. Как я могу не получить доступ к файлам, к которым я мог получить доступ всего несколько минут назад !?

3 ответа3

5

Используйте команду takeown из командной строки администратора. Можно удалить разрешения « Full Access для группы «Администраторы», если это произойдет, если версия графического интерфейса не может изменить разрешения, но команда командной строки все еще может это сделать.

takeown /f C:\dev\nvg510controls\.git /r /d Y

если вы хотите проявить особую фантазию, вы также можете установить права доступа через командную строку

icacls C:\dev\nvg510controls\.git /t /grant Everyone:(F)

Если ни одна из этих команд не работает, загрузите PsExec и выполните команду

psexec -i -s icacls C:\dev\nvg510controls\.git /t /grant Everyone:(F) 

он будет запускать icacls как пользователь SYSTEM вместо пользователя Administrator.

1

Я не знаю, поможет ли это кому-нибудь, но я отмечу здесь, что у меня только что была проблема с Git, не имеющим разрешения на доступ к файлам, и я попробовал ответ выше, но безуспешно.

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

0

Попробуйте сменить владельца на кого-то другого и рекурсивно. Это обычно делает трюк для меня. Я думаю, что это может быть потому, что у вас нет доступа к подпапкам и файлам, а только к папке .git. Смените владельца и выберите все подпапки. Затем измените разрешения с тем же включенным параметром дерева, посмотрите, работает ли он

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .