web-dev-qa-db-ja.com

致命的: '.git / COMMIT_EDITMSG'を開けませんでした:許可が拒否されました

Githubページにoctopressをデプロイしようとしています。私はこれらの指示に従いました:

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

エラーが発生するコミット部分まではすべてうまくいきました:

致命的: '.git/COMMIT_EDITMSG'を開けませんでした:許可が拒否されました

私はもちろんgithub.ioページの所有者であり、これまでこの問題は一度もありませんでした。なぜこれが起こっているのか、そしてさらに重要なことはどうやって解決するのか?

37
user1754606

これはリモートGitリポジトリからのエラーメッセージではなく、ローカルファイルの問題です。この同じディレクトリでgit(またはrake)を別のユーザー(rootなど)として使用したため、上書きできないファイルが作成された可能性があります。

たとえば、chownを使用して、ファイルの所有権を現在のユーザーに変更します。次に例を示します。

chown -R $(whoami) .
37
remram

.git/COMMIT_EDITMSGを削除して解決しました。奇妙な、私は知っています。

63
Zenadix

血なまぐさいMicrosoft Windowsで作業している場合、エラーは、エクスプローラーで隠しファイルを「監視」しているという事実による可能性があります。

13
Laura Liparulo

windowsユーザー向けの別のソリューション:YandexDiskを使用している場合-およびsyncgitisationの下の.gitフォルダー-YandexDiskは、syncronisationsの後に隠し属性と読み取り専用属性を設定します。したがって、YandexDiskをオフにして、.gitフォルダーとすべてのサブフォルダーとファイルを非表示にせず、読み取り専用にしないでください。

5
errogaht

chmod 664 ファイル .git/COMMIT_EDITMSGは、グループに書き込み許可を与えます。

私の状況では、ファイルは開発グループの一部である別のユーザーが所有していました。グループに書き込み許可を与えることで解決しました。

.gitディレクトリは、リポジトリのルートにある必要があります。

コマンド(.gitディレクトリにいると仮定):

chmod 664 COMMIT_EDITMSG 
2
Michael Dunn

これは、権限の問題ではない傾向があります。

この状況は、(たとえば)マージ時にコミットメッセージを記録するように求められ、テキストエディタを保存して終了せず、単に終了したときに発生することがあります。

Gitは、まだコミットメッセージを編集している誰かがいると想定しているようで、既存のファイルの上書きを拒否します。これは、予期しない動作や別のコミットメッセージの損失を引き起こすためです。

2
Menno Bieringa

Windowsを使用していて、Gitのアクセス許可の問題が発生している場合は、(ローカル)リポジトリの.git foldercontents非表示としてマークされていない

ただし、ディレクトリの内容(ファイル、サブディレクトリ)だけでなく、ディレクトリ自体を非表示にすることもできます。

2
xcuipir

私の場合、理由は現在のユーザー(A)がCOMMIT_EDITMSGファイルの所有者(B)、現在のユーザーをBに変更し、再度コミットします。 Sudo su B

1
X.Nane

TortoiseGitを使用している場合は、コミットダイアログが既に開いている可能性があります

1
bobobobo

クイックノート:

ファイルを非表示/読み取り専用に設定した場合、これが発生する可能性があります。フォルダ全体を非表示に設定してみて、読み取り専用のチェックを外してください。

0
Aggressor

コマンドラインで実行するだけです:chmod 777 -Rf /var/www/html/project-name/.git

0
Sumon Mahmud