我正在创建一个更新挂钩,以便我们的中央git存储库可以对每个提交中的每个文件进行一些简单的健全性检查。但是,我不知道如何让git在“推”中咳出所有提交的名称。
无论客户端推送了多少次提交,只需调用一次更新挂钩(按设计)。例如,假设HEAD是e2706ec,我创建了两个提交:
$ echo 'date' >>foo && git commit -am'Touched foo'
[master e5c9682] Touched foo
1 files changed, 1 insertions(+), 0 deletions(-)
$ echo 'date' >>bar && git commit -am'Touched bar'
[master bdc1fd1] Touched bar
1 files changed, 1 insertions(+), 0 deletions(-)
然后我将代码推送到中央存储库:
$ git push
使用以下参数调用.git / hooks / update脚本:
Git将ref_name,old_rev和new_rev传递给更新挂钩。它没有通过的是old_rev和new_rev之间任何转速的名称(在这种情况下,e5c9682)。
鉴于old_rev和new_rev,获取客户端试图推送的每次转速的git咒语是什么?
答案 0 :(得分:4)
git rev-list ^old_rev new_rev
列出了这两次提交之间的所有提交