プッシュは引数としてユーザー ID のみを認識し、ブランチは認識できないため、GIT 更新フックにロック スクリプトを配置して、ユーザーがファイルをプッシュできないようにリポジトリをロックするというアイデアがあります。そのため、ディレクトリをロックするだけで、リポジトリ全体をロックできます。
GIT で特定のブランチをロックする方法はありますか?
または、Update Hook が、ユーザーがどのブランチからプッシュしているか、またどのブランチにコードがプッシュされているかを識別できる方法はありますか?
ベストアンサー1
プッシュ先のブランチは、更新フックブランチをmyfeature
プッシュ用にロックしたい場合は、次のコード ( に配置hooks/update
) を実行します。
#!/bin/sh
# lock the myfeature branch for pushing
refname="$1"
if [[ $refname == "refs/heads/myfeature" ]]
then
echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
echo "You cannot push to myfeature! It's locked"
echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
exit 1
fi
exit 0