git checkout コマンドによって作成されたファイルにカスタム権限を強制するにはどうすればよいですか?

git checkout コマンドによって作成されたファイルにカスタム権限を強制するにはどうすればよいですか?

コマンドによって作成されたファイルgit checkoutにカスタム権限を設定する必要があります。

設定しても、core.sharedrepository=0777git は 0644 権限で作業ツリー ファイルを作成します。ただし、グループ内の誰かが書き込みできるように、少なくとも 0664 にする必要があります (カスタム所有者グループを指定することも非常に便利です)

chown/chmod を再帰的に適用すると機能するかもしれませんが、それは最後の手段であり、リソースの無駄のように思えます。

答え1

インストールされたツリーのファイル権限を管理するために、git のみを使用しないでください。

git はシングル ユーザーです。複数ユーザー システムのセキュリティを確保するのに十分なファイル所有権と権限を追跡しません。1core.sharedrepository人のユーザーによる単純なツリー ワイドがユース ケースに十分であったとしても、望みどおりの動作をさせるのは困難です。おそらく、まだデフォルトのumask?を使用しているのでしょう。

実際のアーカイブ形式(ソフトウェア パッケージ システム、または tar のような汎用アーカイブ)を検討します。アーカイブを生成するスクリプトで適切な権限を取得します。

または、権限修正スクリプトを実行するのも悪くありません。必要に応じて、権限を変更する前に権限をチェックし、ファイルのメタデータへの不要な変更を避けてください。


関係のない考慮事項:このツリーが更新される場合は、gitはファイルを同期するのではなく、履歴をマージすることに注意してください。これらのgitデプロイメントルールスクリプトがおそらく間違っている理由を理解するgit pull

関連情報