Git plumbing命令找出在给定的版本中哪些文件已被更改

Rij*_*ijk 5 git githooks

我创建了一个钩子,当开发人员将更新推送到他的共享存储库时,该钩子发出通知电子邮件。这封电子邮件包含已更改文件的列表,例如:

A   __classes/Page/Activity.php
M   __config/Scheme.php
Run Code Online (Sandbox Code Playgroud)

我使用以下bash生成的代码:

$(git diff "$newrev"^ "$newrev" --name-status)
Run Code Online (Sandbox Code Playgroud)

这很好。但是,我现在尝试将所有这些移植到著名的post-receive-email hook。该钩子确实具有hooks.showrev配置指令,但是我认为这仅允许在命令中%s使用一次修订号()。所以这不起作用:

showrev = "git diff %s^ %s --name-status"
Run Code Online (Sandbox Code Playgroud)

必须有一个“ plumbing”命令来执行此操作。谁能指出我正确的方向?:)

Mar*_*air 2

使用以下内容怎么样?

showrev = "git show --name-status --pretty=format: %s"
Run Code Online (Sandbox Code Playgroud)

git show是瓷器而不是管道,但我想这就是你想要的。