фатально: не удалось открыть".git / COMMIT EDITMSG': отказано в разрешении

Я пытаюсь развернуть octopress на страницах github. Я последовал этим инструкциям:--1-->

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

все это хорошо работало до совершать часть, где я получаю ошибку:

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

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

10 ответов


Это не сообщение об ошибке из удаленного репозитория Git, это проблема с вашими локальными файлами. Вероятно, вы использовали git (или rake) в качестве другого пользователя (например, root) в этом же каталоге, и он создал файлы, которые теперь вы не можете перезаписать.

просто используйте chown для изменения права собственности на файлы для вашего текущего пользователя, например:

chown --recursive $(whoami) .

Я решил это, удалив .git/COMMIT_EDITMSG. Странно, я знаю.


Если вы работаете над кровавой Microsoft Windows, ошибка может быть связана с тем, что вы "смотрите" скрытые файлы в проводнике..вот так!


другое решение для пользователей Windows: если вы используете YandexDisk - и ваш .папка git при синхронизации - YandexDisk установить скрытый и только для чтения атрибутов после syncronisations. Итак, выключите YandexDisk и сделайте.папка git и все подпапки и файлы не невидимы и не только для чтения


chmod 664 файл .git/COMMIT_EDITMSG дает ему права на запись в группу.

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

на .git каталог должен находиться в корне вашего репозитория.

Command (предполагая, что вы находитесь в.git directory):

chmod 664 COMMIT_EDITMSG 

Если вы используете TortoiseGit, возможно, у вас уже открыт диалог фиксации


Это, как правило, не проблема с разрешениями.

эта ситуация может возникнуть, когда вам будет предложено записать сообщение фиксации при слиянии (например), и вы не сохранить и выйти из текстового редактора, но вы просто выйти.

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


в моем случае причина в том, что текущий пользователь(A) не COMMIT_EDITMSG владелец файла (B), измените текущего пользователя на B и зафиксируйте снова. sudo su B


просто запустите в командной строке: chmod 777-Rf/var/www/html/project-name/.git


быстрое Примечание:

Если вы установили файл в hidden / readonly, это может произойти. Попробуйте настроить всю папку на unhidden и снимите флажок только для чтения.