index.lock権限エラー - .gitはrootによって所有され、作業ツリーは他のユーザーによって所有されます。

index.lock権限エラー - .gitはrootによって所有され、作業ツリーは他のユーザーによって所有されます。

私のサーバーには、ネットワーク経由で読み取ることができるディレクトリを含むgitリポジトリがあります。特定のユーザーディレクトリの内容はそのユーザーが読み書きすることができますが、ディレクトリをルートが所有することをwww望みます。.git

root以外のユーザーが簡単な回復方法でファイルを確認できるように、.gitディレクトリを十分に読み取ることができるようにする方法はありますか?追加とコミットは許可されていません(管理者のみが実際に変更を「承認済み」とマークしてステージングに昇格することができます)。理論的には、権限のないユーザーが、などのコマンドを読み取り、変更できる必要.gitがありますwww。ここに問題はありません。設定しましたが、お支払いに失敗しました。git loggit show

$ git checkout www/some-file-name
fatal: Unable to create '/REDACTED/PATH/.git/index.lock': Permission denied

Gitにインデックスをロックしないように依頼できますか?他のコンテンツをあまり開かずにインデックスをロックすることはできますか? (明らかに.gitディレクトリを書き込み可能にすることはできません。そうすると、すべての保護が失われるためです。)

注:この問題は、一度に1つのファイルに対して解決される可能性があります。

$ git show HEAD:www/some-file-name >www/some-file-name

したがって、これは明らかに基本的な制限ではありません。おそらくgit checkout四半期の移行を行っているとしますか?ただし、これはワイルドカードとディレクトリツリーを管理する最も便利な方法です。

編集:これいいえ分岐スイッチについて話してください。git checkout見ることができるようにしたい単一ファイル。そのため、ここには明らかな答えは適用されません。

答え1

非常に矛盾した質問をしました。リポジトリで実行するには、git checkoutユーザーに.gitフォルダへの書き込み権限が必要です。

ネットワークサーバーがアクセスできないように、ネットワークルート上でプロジェクトを追跡できます。

それ以外の場合は、ストレージを別の場所に複製し、必要なストレージをネットワークルートにシンボリックリンクします。

関連情報