Подтвердить что ты не робот

Фатальный: не удалось открыть '.git/COMMIT_EDITMSG': разрешение отклонено

Я пытаюсь развернуть октопресс на страницах github. Я выполнил следующие инструкции:

http://octopress.org/docs/deploying/github/

Все работало хорошо до части фиксации, где я получаю ошибку:

фатальный: не удалось открыть '.git/COMMIT_EDITMSG': Permission denied

Я, конечно, владелец моей страницы github.io, и у меня никогда не было этой проблемы раньше. Почему это происходит, и что еще более важно, как мне его решить?

4b9b3361

Ответ 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 тянуть