サーバー上の仮想ホストにプルされる開発、テスト、およびステージングブランチを持つgitリポジトリがあります。ユーザー アカウントを使用してサーバー上で git pull できる必要がありますが、プルされるファイルは www-data ユーザー (およびグループ) が所有する必要があります。私がsvnを使用したとき、ユーザーとしてsvnに対して認証されますが、正しいファイル所有権を維持する --username --password オプションを使用して、www-dataおよびsvn updateとしてsudoすることができました。git でこれを行う方法はありますか (実際には認証にパスワードではなく ssh キーを使用しています)。
質問する
4399 次
1 に答える
6
プルしているリポジトリでこのオプションを設定したい (からの抜粋git help config
):
core.sharedRepository
When group (or true), the repository is made shareable between several
users in a group (making sure all the files and objects are
group-writable). When all (or world or everybody), the repository will
be readable by all users, additionally to being group-shareable. When
umask (or false), git will use permissions reported by umask(2). When
0xxx, where 0xxx is an octal number, files in the repository will have
this mode value. 0xxx will override user’s umask value (whereas the
other options will only override requested parts of the user’s umask
value). Examples: 0660 will make the repo read/write-able for the
owner and group, but inaccessible to others (equivalent to group
unless umask is e.g. 0022). 0640 is a repository that is
group-readable but not group-writable. See git-init(1). False by
default.
このオプションを設定cd
するには、適切なグループ/モードが必要な作業ツリーまたはリポジトリ (プル元のリポジトリではありません) に設定し、git config core.sharedRepository group
. リポジトリ内のファイルのモードを設定するだけでなく、それらがすべてリポジトリのルートを所有するグループによって所有されていることも確認します。このオプションは、リポジトリでローカルに作業している場合でも、別のリポジトリから (たとえばgit://
プロトコル経由で) プッシュしている場合でも有効です。
このオプションを設定せずに間違った所有者やモードでリポジトリにファイルを作成してしまった場合は、最初cd
にリポジトリに入って実行chmod -R g+rw .
しchgrp -R www-data .
、整合性のある状態にする必要があります。
于 2013-04-25T13:23:54.877 に答える