Фатальный: не удалось открыть '.git/COMMIT_EDITMSG': разрешение отклонено
Я пытаюсь развернуть октопресс на страницах github. Я выполнил следующие инструкции:
http://octopress.org/docs/deploying/github/
Все работало хорошо до части фиксации, где я получаю ошибку:
фатальный: не удалось открыть '.git/COMMIT_EDITMSG': Permission denied
Я, конечно, владелец моей страницы github.io, и у меня никогда не было этой проблемы раньше. Почему это происходит, и что еще более важно, как мне его решить?
Ответы
Ответ 1
Это не сообщение об ошибке из удаленного репозитория Git, это проблема с вашими локальными файлами. Вы, вероятно, использовали git (или rake) в качестве другого пользователя (например, root) в этом же каталоге, и он создал файлы, которые вы теперь не можете перезаписать.
Просто используйте chown, чтобы изменить владельца файлов на вашего текущего пользователя, например:
chown -R $(whoami) .
Ответ 2
Я решил это, удалив .git/COMMIT_EDITMSG
. Странно, я знаю.
Ответ 3
Если вы работаете над чертой Microsoft Windows, это может быть связано с тем, что вы "просматриваете" скрытые файлы в проводнике файлов... это!
Ответ 4
другое решение для пользователей Windows:
если вы используете YandexDisk - и вашу .git-папку под syncronisation -
YandexDisk устанавливает скрытые и readonly атрибуты после syncronisations.
Итак, отключите YandexDisk и сделайте папку .git, а все вложенные папки и файлы НЕ невидимы, а не readonly
Ответ 5
chmod 664
файл .git/COMMIT_EDITMSG
предоставляет права доступа к группе.
В моей ситуации файл принадлежал другому пользователю, который был частью моей группы разработки. Предоставление разрешения на групповую запись разрешило его.
Каталог .git
должен находиться в корневом каталоге вашего репозитория.
Команда (если вы находитесь в каталоге .git):
chmod 664 COMMIT_EDITMSG
Ответ 6
Как правило, это не проблема.
Эта ситуация может возникнуть, когда вам будет предложено записать сообщение фиксации при слиянии (например), и вы не сохраняете и не покидаете текстовый редактор, но вы просто уходите.
Git, похоже, предполагает, что кто-то редактирует сообщение фиксации и отказывается перезаписывать существующий файл, так как это может вызвать неожиданное поведение и потерю другого сообщения о фиксации.
Ответ 7
Если вы используете TortoiseGit, вы можете открыть диалог Commit
Ответ 8
В моем случае причина заключается в том, что текущий пользователь (A) не является владельцем файла COMMIT_EDITMSG
(B), меняет текущего пользователя на B и фиксирует его снова.
sudo su B
Ответ 9
Если вы используете Windows и у вас возникли проблемы с разрешениями Git, убедитесь, что содержимое вашей (локальной) папки .git
репозитория не помечено как скрытое.
Однако вы можете скрыть сам каталог, но не его содержимое (файлы, подкаталоги).
Ответ 10
Просто запустите в командной строке: chmod 777 -Rf/var/www/html/project-name/.git
Ответ 11
Быстрое примечание:
Если вы установили файл как скрытый/только для чтения, это может произойти. Попробуйте установить всю папку как unhidden и снимите флажок только для чтения.
Ответ 12
Я работаю с VSCODE и Windows, когда я делаю домашний офис (я не люблю Windows). И я исправляю эту проблему, закрывая де VSCODE и делая де git тянуть