「デプロイ」ユーザーを使用して本番サーバーで git stash を実行しようとしましたが、次のようなエラーが発生します
/usr/lib/git-core/git-stash: 440: cannot create /app/app_name/.git/logs/refs/stash: Permission denied
「root」ユーザーにはエラーは表示されません。
エラーの原因と解決方法は?
リポジトリをどのように作成したかによって異なります。同じグループの複数のユーザーがリポジトリにアクセスして書き込むことができるように、 で
作成されたリポジトリで試してください。git init --shared
--shared[=(false|true|umask|group|all|world|everybody|0xxx)]
Git リポジトリが複数のユーザー間で共有されるように指定します。
これにより、同じグループに属するユーザーがそのリポジトリにプッシュできるようになります。指定すると、設定変数 "core.sharedRepository
" が設定され、その下のファイルとディレクトリ$GIT_DIR
が要求されたパーミッションで作成されます。
指定されていない場合、Git は umask(2) によって報告されたパーミッションを使用します。
詳細については、「多数のアカウントで Sudo を使用せずに Git を使用する」を参照してください。
現在のレポについてdeploy
は、 にアクセスする権利があることを確認してください/app/app_name/.git
。
OP rtcoms は 確認します:
3 つのファイルがユーザーによって所有されていました
root
。そして、それはうまくいきました。