在存储库中,我只允许每个分支提交一次。在多次提交的情况下,在合并之前需要rebase ..因为失败是人类我用来忘记这一点。
我想实现一个git-hook,它检查合并请求是否合并到开发中的分支是否只有一个提交。
提前致谢。
答案 0 :(得分:0)
如果要在远程实现挂钩,则可以使用update hook运行以列出不同的提交,然后使用输出中的行数。 old_hash和new_hash作为参数传递给此钩子,它是现有的和新的提交哈希值。 Git会将此钩子称为
"$GIT_DIR/hooks/update refname old_hash new_hash"
以下是一个示例,您可以插入git rev-list --merges ${1}~1..${1}
来确定它是否是合并提交
case "$1" in
refs/heads/*)
is_merge = $(git rev-list --merges ${1}~1..${1})
if [ ! -z "${is_merge}" ]; then
commit_count = $(git rev-list $2..$3 | wc -l)
if [ ${commit_count} > 1 ]; then
echo <reject with your message>
exit 1
fi
else
<Not a merge commit do other validations>
fi
;;
esac