プッシュまたは直接ファイルの作成中に、ユーザーによるトップレベルのディレクトリの作成を停止するのを防ぐより良い方法はありますか?
3 に答える
この回答は、VonCの回答を補足するものです。
各開発者は自分のクローン(自分の作業リポジトリ)を持っている必要があるため、現実的に1を課すことができる唯一の制御は、リポジトリの公開のプッシュ中(または変更のプル中)の許可または禁止です。update
これは、またはpre-receive
フックを使用して実行できます。
1)pre-commit
「gitcommit--no-verify」でフックをバイパスできます
課したい準備ができたソリューションサポートの制約があるかどうかはわかりませんが、update-paranoidサンプルフック(contrib/hooks
gitソースから)とgitolite(gitリポジトリへのアクセスを管理するツール)の両方をサポートするように拡張できると思いますそれ; どちらもパスベース/差分ベースの制約を実行できます。たとえば、指定された構成済みサブディレクトリにのみ変更を許可します。
次のようなクライアント側のフックを試すことができます
コミットメッセージを入力する前に、
pre-commit
フックが最初に実行されます。
これは、コミットされようとしているスナップショットを検査したり、何かを忘れていないかどうかを確認したり、テストが実行されていることを確認したり、コードで検査する必要があるものを調べたりするために使用されます。このフックからゼロ以外を終了すると、コミットが中止されますが、でバイパスすることもできますgit commit --no-verify
。
事前コミットフックのこの例を参照して、インデックスの内容をチェックするという観点から何ができるかを確認してください。
マスター リポジトリに入れるものをそのレベルで本当に制御したい場合は、他の人にプッシュさせないでください。代わりに、管理者に他のユーザーから引き出してもらい、その変更をレビューして、ポリシーに違反していないことを確認します。