web-dev-qa-db-ja.com

gitがファイルの所有権を変更しないようにする方法

開発サーバー(Red Hat)のgithubリポジトリからプルすると、プルの完了後にファイルの所有権が変更されることに気づきました。 .gitファイルは以前私が所有していましたが、私としてファイルを書き込むことに気づきました。別のユーザーとしてファイルを書き込むために必要です。そこで、.gitディレクトリの所有権を変更しました。

私はgitconfig core.filemodeに出くわしました。これは本当でした。それ以来、私はそれに誤りを設定しました。これをfalseに設定した後、違いは見られませんでした。ファイルの所有権が変更されないようにするにはどうすればよいですか。

これは私にはローカルでは起こりません。

16
user2108258

グループを保持するだけで十分な場合は、ディレクトリにsetgidフラグを設定できます。 http://en.wikipedia.org/wiki/Setuid を参照してください

ディレクトリ( "chmod g + s")にsetgid権限を設定すると、その中に作成された新しいファイルとサブディレクトリは、ファイルを作成したユーザーのプライマリグループIDではなくグループIDを継承します(所有者IDは影響を受けません。グループIDのみ)。新しく作成されたサブディレクトリは、setgidビットを継承します。したがって、これにより、新しいファイルまたはディレクトリを作成する前に、グループメンバーが現在のグループを明示的に変更する必要があるという不便を感じることなく、グループの共有ワークスペースが有効になります。ディレクトリにsetgid権限を設定すると、setgidビットが設定された後に作成された新しいファイルとサブディレクトリのグループIDにのみ影響し、既存のエンティティには適用されないことに注意してください。既存のサブディレクトリへのsetgidビットの設定は、次のようなコマンドを使用して手動で行う必要があります。

[root@foo]# find /path/to/directory -type d -exec chmod g+s '{}' \;

30
nafg

Gitはデプロイメントサーバーではありません。ファイルを書いているのはあなたです。権限と所有権の設定が必要な場合は、チェックアウト後のフックを作成し、構成ファイルなどを読み取って、次に何をするかを決定することができます。

7
jthill