Git post-receive hook loop尽管所有提交

Sar*_*ens 5 git githooks git-post-receive

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

我有一个循环:

while read oldrev newrev refname
do
    python /local/Git/util.py $newrev $oldrev $refname
done
Run Code Online (Sandbox Code Playgroud)

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

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

Mag*_*äck 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
Run Code Online (Sandbox Code Playgroud)