
Gitサーバーを設定しましたが、ユーザーがコミットをプッシュする際にいくつかの問題があります。合計3人のユーザーがいますが、そのうちの1人が特定のファイルをプッシュすると、そのファイルは他のユーザーに対して読み取り専用になり、プッシュしようとすると解凍が失敗します。
すべての権限を再帰的に設定することでこの問題を一時的に解決できますが、777
これは誤ったアプローチであり、次のプッシュ前にのみ問題を解決します。
毎回権限を変更せずに、選択したすべてのユーザーがプッシュおよびプルできるようにするにはどうすればよいですか。
答え1
リポジトリの作成を使うとgit init --shared
こうなります。:
Gitリポジトリが複数のユーザー間で共有されることを指定します。これにより、同じグループに属するユーザーがリポジトリにプッシュできます。指定すると、構成変数 "core.sharedRepository" が設定され、その変数の
$GIT_DIR
下のファイルとディレクトリが要求された権限で生成されます。
書き込み権限を持っている必要があるすべてのユーザーを同じグループに配置すると、Git(さまざまなSSHおよびスマートサーバー要素を含む)はグループg+sx
書き込み可能です。chgrp -R
receive.denyNonFastForwards
これにより、リポジトリの設定も有効になり、必要に応じて手動で無効にできます。