Git post-receive hook循环遍历所有提交

时间:2014-12-05 14:05:02

标签: git githooks git-post-receive

我正在尝试在服务器端执行一个post-receive挂钩,它将为push中的每个提交运行一次Python脚本。

我有一个循环:

while read oldrev newrev refname
do
    python /local/Git/util.py $newrev $oldrev $refname
done

但是这只运行脚本,仅用于push中给出的最后一次提交。

有没有办法为推送到服务器的所有提交一次性运行脚本?

1 个答案:

答案 0 :(得分:5)

在脚本中,使用git rev-list获取范围内提交的SHA-1。在这种情况下,您应该循环git rev-list $oldrev..$newrev的输出,例如像这样:

git rev-list $oldrev..$newrev | while read rev ; do
    python /local/Git/util.py $rev $oldrev $refname
done