私と私の同僚は共有のウェブサイトリポジトリを持っています。私たちは皆、Ubuntu10.04にプッシュしているWindows764ビットを使用しています。これが問題になる場合のセットアップを以下に示します。
ローカル->ハブ->ウェブサイト
ベアリポジトリであるハブにプッシュし、ハブの更新後フックを使用してWebサイトリポジトリにcdし、ハブからWebサイトに変更をプルします。これは、Webサイトがライブであり、常にチェックアウトされており、プッシュできないために行われます。
ローカルにいて、新しいフォルダ/ファイルをコミットすると、作成モードが100644で次のように表示されます。
$ git commit -a -m "testing permissions"
[master 865b809] testing permissions
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 test.php
これらの変更をリポジトリにプッシュすると、775と664が必要な場合に、フォルダが755として、ファイルが644として作成されます。ファイルを編集しているだけである限り、アクセス許可は少なくとも同じままです。唯一の問題は作成にあります。
共有リポジトリには、core.sharedrepository = 0660
必要に応じて権限を設定することを意味すると思いました。また、私たちumask
の私たちの.bashrc
は002に設定されています。
これが私のローカル設定です
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
ローカルが権限を決定し、共有リポジトリに設定されているものを無視しているようです。作成モードを100664にするにはどうすればよいですか。
編集
ハブ構成
[core]
repositoryformatversion = 0
filemode = true
bare = true
sharedrepository = 0660
[receive]
denyNonFastforwards = true
ウェブサイトの設定
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
sharedrepository = 1
[receive]
denyNonFastforwards = true
EDIT2
以下のKallePokkiが彼女のコメントで指摘したように。この問題は、GITを使用してプッシュすると、非対話的に実行されているため、umaskのセットアップが機能しないことです。0002
リポジトリの更新後を更新して、誰かがプッシュするたびにumaskを設定しました。