概要
-
git branch
を実行したら、fatal: detected dubious ownership in repository at...
というエラーメッセージが出てきました。本記事ではその原因と解決方法を記します。
エラーメッセージと意味
- EC2インスタンスで
git branch
を実行したら、、
$ git branch
fatal: detected dubious ownership in repository at '/var/www/html/sample_homepage'
To add an exception for this directory, call:
git config --global --add safe.directory /var/www/html/sample_homepage
- 上記のエラーメッセージが返ってきました。初めてみるメッセージでした。
- 調べてみると、gitが指定されたリポジトリのディレクトリ所有者に疑念を抱いていることを示しているとのこと。
原因
- Gitが一般的に使用されるデフォルトのユーザー名とグループ名(一般的には
"git"
)と、実際にはファイルにアクセスするために使用されるユーザー名とグループ名が異なる場合に発生することがあるらしい。 - 例えば、EC2インスタンス上で実行されるApacheウェブサーバーの場合、
"apache"
ユーザーと"apache"
グループがファイルにアクセスするために使用されます。"git"
ユーザーと"git"
グループによって所有されていることを期待しているのに、実際には異なるユーザーとグループによって所有されているため、Gitが警告を出すということです。
解決策
- エラーメッセージで提案されているように、次のコマンドを実行して、Gitに安全なディレクトリとして指定してあげると解決します。
$ git config --global --add safe.directory /var/www/html/sample_homepage
- これにより、Gitはこのディレクトリに対して警告を出さなくなります。
- 自分の場合はこれで
git branch
もできるようになりました。 - 必要に応じて、ファイルにアクセスするために使用されるユーザーとグループに合わせて、ディレクトリの所有者を変更することもできます。
- 自分の場合はこれで
- ディレクトリの所有者が間違っている場合にも同じメッセージが出ます。具体的には以下のコマンドを使います。
- usernameとgroupnameは、実際にディレクトリを使用するユーザーとグループに置き換えます。
$ sudo chown -R username:groupname /var/www/html/sample_homepage