0

SSH経由でアクセスするサーバーに裸のgitリポジトリがあります。ちゃんと押したり引いたりできます。ただし、プッシュするファイルはサーバー上に作成され、アクセス権644があります。つまり、ファイルを変更できるのは私だけです。これは私が唯一の貢献者である限り問題ありませんが、複数のユーザーがリポジトリで作業できるようにするにはどうすればよいですか? サーバーのルート権限がないため、グローバル オプションを変更できません。

リポジトリにプッシュした後、ファイルのアクセス許可を変更するためのフック スクリプトについて考えていました。

これは私の問題を解決するための好ましい方法ですか? 具体的にどのように進めればよいでしょうか?他の/より良い解決策はありますか?

4

2 に答える 2

2

フォルダーを 775 に、ファイルを 664 に変更する必要があります。その後、構成する必要がありますcore.sharedRepository

https://www.kernel.org/pub/software/scm/git/docs/git-config.html

group (または true) の場合、リポジトリはグループ内の複数のユーザー間で共有可能になります (すべてのファイルとオブジェクトがグループ書き込み可能であることを確認してください)。all (または world または everyone) の場合、リポジトリはすべてのユーザーが読み取り可能であり、さらにグループで共有できます。umask (または false) の場合、git は umask(2) によって報告されたパーミッションを使用します。0xxx (0xxx は 8 進数) の場合、リポジトリ内のファイルはこのモード値になります。0xxx は、ユーザーの umask 値をオーバーライドします (他のオプションは、ユーザーの umask 値の要求された部分のみをオーバーライドします)。例: 0660 は、所有者とグループに対してリポジトリを読み取り/書き込み可能にしますが、他のユーザーはアクセスできません (umask が 0022 でない限り、グループと同等です)。0640 は、グループで読み取り可能ですが、グループで書き込み可能ではないリポジトリです。git-init(1) を参照してください。デフォルトでは偽です。

私のチーム リポジトリでは、 に設定しましたgroup。だから、私のようにconfig見える:

sharedRepository = group

サーバーに対する権限がありませんか? 1 つの SSH アカウントを複数の貢献者と共有する予定がない限り、これを整理する必要があります。

于 2013-04-08T14:24:37.893 に答える