ローカル作業ブランチをリモートにプッシュできないGit運用で誤プッシュを防止する方法についての備忘録。
対応
pre-push
フックを使ってプッシュ時にブランチ名のチェックを行う。
例) 作業ブランチ名がfeature/xxx
の場合。
[.git/hooks/pre-push]
#!/bin/sh
current_branch=$(git symbolic-ref HEAD)
if [[ "$current_branch" == *refs/heads/feature/* ]]; then
echo "You are trying to push a 'feature/' branch. Pushes to 'feature/' branches are not allowed."
exit 1
fi
exit 0
※Unix系OSの場合はchmod +x .git/hooks/pre-push
でpre-pushフックファイルに実行権限を設定してください。
結果
feature/#001
という名称のローカルブランチをリモートにプッシュしようとしたときのTortoiseGitの画面は以下の通り。
プッシュコマンドがエラーになってプッシュできないことが確認できます。
以上です。