3

ユーザーが .gitignore ファイルを変更しないように強制する理由はありますか。つまり、誰かがこのファイルを変更または削除し、この変更をプッシュするとしましょう。

4

3 に答える 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 に答える