やる理由
- masterでcommitしてpushしようとするとGithubのmasterブランチの保護のおかげでエラーになる
- そのあとにtopic branchを作成してmasterブランチではresetするのはめんどい
- そもそもmasterにcommitできないようにしたい
やりかた
$cd path/to/project
$vim .git/hooks/pre-commit
printf "\e[31m%s\n\e[m" "[Error]"
で [Error]
を赤文字で出力できる。
.git/hooks/pre-commit
#!/bin/sh
# if the branch is master, then fail.
branch="$(git symbolic-ref HEAD 2>/dev/null)" || \
"$(git describe --contains --all HEAD)"
if [ "${branch##refs/heads/}" = "master" ]; then
printf "\e[31m%s\n\e[m" "[Error]"
echo "can't commit on master branch."
echo "please commit on topic branch."
exit 1
fi
masterにcommitしてみる
$git commit -m "masterにcommitしてみる"
can't commit on master branch.
please commit on topic branch.
成功