ユーザーが .gitignore ファイルを変更しないように強制する理由はありますか。つまり、誰かがこのファイルを変更または削除し、この変更をプッシュするとしましょう。
3 に答える
3
Git は分散化されています。誰かがレポを複製すると、.gitignore
ファイルを含め、完全に管理下に置かれます。
できることは、指定されたファイルの種類をチェックし、ユーザーのプッシュを拒否するGit フックを使用して、ユーザーが特定のファイルをサーバーにプッシュするのを防ぐことです。
pre-receive hooksを読んでください。そして、指定されたファイル タイプを検索するスクリプトを作成します。
リポジトリを確認する.git/hooks
と、その処理方法を示すサンプル ファイルのリストが表示されます。また、この記事を読んで、簡単に間違えないようにしてください。
編集
私はシェル スクリプトが得意ではありませんが、.php ファイルと .css ファイルを禁止し、中止する前にユーザーに通知する小さなスクリプトを次に示します。にあり.git/hooks/pre-receive
ます。実行可能 ( ) にすることを忘れないでくださいchmod +x
。そうしないと、機能しません。
#!/bin/sh
while read oldrev newrev refname
do
if [[ `git diff-tree --no-commit-id --name-only -r $newrev | grep -e 'css\|php'` != "" ]]
do
echo "Cannot push this"
exit 1;
fi
end
于 2013-02-13T14:15:01.540 に答える