如何获取在 git 中上次推送中受影响的所有提交消息?

How to get all commit messages which are affected in last push in git?

我只是想创建一个 git 挂钩,它会在每个 "post-recieve".

上向我们的 ms-teams 频道发送有关所有提交的通知

git 钩子本身可以工作,但使用命令 git log -1 --pretty=format:'%s'
我只得到最后的提交消息,如果你将多个提交推送到 master,这不是很有用。

有没有办法在每次推送时获取所有受影响的提交的数据(消息、作者、提交日期、提交编号、usw。)?

我在 Stack Overflow 上查找了很多问题,但没有找到适合我的问题的解决方案。

通常来说,您的 origin/master 将是您上次同步后 master 在遥控器 origin 上的位置。 master 将是您当前的分支。这些之间的提交将是您感兴趣的提交,您可以使用 git log origin/master..origin 获取它们,您可以用它们做任何您想做的事情。

现在,在您的情况下,您需要在接收后 运行 在服务器上执行此操作。我不确定 post-receive 是否会有此信息(因为参考资料已经更新)。但是 pre-receive 钩子接收到所有被推送的提交的列表。也许将此连接到您的通知功能会更好。 linked to from 有关于如何做到这一点的详细信息。