commit-msg
#!/bin/sh
if [ -n "${GIT_DIR}" ]; then
hooksdir="./${GIT_DIR}/hooks/"
else
hooksdir="./.git/hooks/"
fi
. "${hooksdir}common.sh"
ticket="$(extractTicketId)"
if [ -n "${ticket}" ]; then
appendMsgTo1stLine "$1" "${ticket}"
fi
common.sh
#! /bin/sh
getGitBranchName()
{
branch="$(git symbolic-ref HEAD 2>/dev/null)" ||
"$(git describe --contains --all HEAD)"
echo ${branch##refs/heads/}
}
isOnMasterBranch()
{
if [ "$(getGitBranchName)" = "master" ]; then
return 0
fi
return 1
}
isOnDevelopBranch()
{
if [ "$(getGitBranchName)" = "develop" ]; then
return 0
fi
return 1
}
isOnFixBranch()
{
if [[ "$(getGitBranchName)" =~ ^feature/#[0-9]+.* ]]; then
return 0
fi
return 1
}
appendMsgTo1stLine()
{
mv $1 $1.$$
if [ -s "$1.$$" ]; then
if head -1 "$1.$$" | grep "$2" > /dev/null; then
cp "$1.$$" "$1"
else
sed '1s/$/ '"$2"'/' "$1.$$" > $1
fi
else
echo "$2" > "$1"
fi
rm -f $1.$$
}
extractTicketId()
{
echo "$(getGitBranchName)" \
| awk 'BEGIN{ FS="[/]"}
$1 == "feature" || $1 == "id" { printf "#%s", $2, $3 }
$2 == "feature" || $2 == "id" { printf "#%s", $3, $4 }
'
}
hasTicketId()
{
first="$(git cat-file -p $1 \
| sed '1,/^$/d' | head -1 \
| sed '/.* #[0-9][0-9]*.*/!d')"
if [ -n "${first}" ]; then
echo "true"
else
echo "false"
fi
}
extractParents()
{
parents="$(git cat-file -p $1 \
| grep '^parent [0-9a-f]\{40\}$')"
echo "${parents##parent }"
}
オリジン2つ登録
git remote add foofoo git@github.com:redamoon/foofoo.git