Git には (現在) 必要なことを行うために使用できるフックがありません。git help hooks
利用可能なフックのリストについては、を参照してください。
別のアプローチを検討する必要があるかもしれません。たとえばgit
、独自の解析を行うラッパー スクリプトまたはシェル関数をラップして、ブランチを削除しないようにすることができます。
git() {
[ "${1}" != branch ] ||
{ [ "$2" != -d ] && [ "$2" != -D ]; } ||
case $3 in
abranchthatshouldnotbedeleted) false;;
*) true;;
esac ||
{ printf %s\\n "ERROR: branch $3 must not be deleted" >&2; exit 1; }
command git "$@"
}
上記のシェル関数は非常に原始的で、 のような呼び出しを処理しませんgit --git-dir=/foo.git branch -d abranchthatshouldnotbedeleted
が、要点はわかります。git rev-parse --parseopt
おそらく、それをより堅牢にするために使用できます。