Ответ 1
Ошибка отказа в доступе может означать, что файл используется другим процессом и для репозитория GIT, который кажется более вероятным, чем проблема с правами доступа к файлам.
(Я предполагаю, что GIT похож на SVN, где каждый файл в репозитории создается вашей собственной учетной записью со стандартными разрешениями. Если это не так, то я могу ошибаться.)
-
В качестве первого шага запустите Process Explorer в качестве администратора и нажмите Ctrl-F, чтобы открыть окно, в котором вы можете ввести имя файла и посмотрите, какие процессы (если они есть) открывают этот файл.
Когда я говорю "run as Administrator":
Я имею в виду не только при входе в систему как администратор. Windows 7 UAC означает, что учетные записи администратора не запускают файлы с полным доступом администратора по умолчанию. Щелкните правой кнопкой мыши procmon.exe и выберите параметр "Запуск от имени администратора".
Я предполагаю, что вы уже знакомы с этим при запуске командной строки в качестве администратора. Если вы только что изменили на учетную запись администратора, но не использовали "Запуск от имени администратора" в командной строке, это может быть причиной отказа команды takeown. В командной строке должно быть указано "Administrator:" в заголовке окна, если он правильно поднят, если только UAC не выключен полностью.
-
Если указан один или несколько процессов, подтвердите полный путь к файлу в списке (в случае, если какой-либо другой файл на диске имеет аналогичное имя).
-
Закройте все процессы, в которых файл открыт. Попытайтесь закрыть их, если сможете. В крайнем случае вы можете их остановить. Если это процесс, выполняемый как другой пользователь/учетная запись, это может быть служба, которую вы можете остановить.
(Убедитесь, что View- > Показать процессы для всех пользователей отмечены галочкой, а затем найдите соответствующий процесс через столбец PID. Если вы считаете это услугой, наведите указатель мыши на нее и появится всплывающая подсказка, в которой указывается имя (s ) всех запущенных сервисов.)
-
Если вы не можете найти какой-либо процесс доступа к файлу или закрыть его, все все равно приведет к ошибке отказа в доступе, и вы определенно попробуете удалить из командной строки с повышенными правами, тогда вы можете попытаться сообщить Windows удалите файл при следующей перезагрузке. Вы можете использовать инструмент SysInternals MoveFile для этого.