[我只是试图创建一个git钩子,该钩子在每个“ post-receve”上将有关所有提交的通知发送到我们的ms-teams通道。
git钩子本身可以工作,但是使用命令git log -1 --pretty=format:'%s'
我只得到最后一个提交消息,如果您将多个提交推送到主站,这不是很有用。
是否有一种方法可以在每次推送时获取所有受影响的提交的数据(消息,作者,提交日期,提交编号,usw。)?我在这里查询了关于stackoverflow的很多问题,但是还没有找到解决我问题的合适方法。
谢谢! :)
通常来说,您的origin/master
将是您上次同步后在master
上的origin
的位置。 master
将是您当前的分支。这些之间的提交将是您感兴趣的提交,您可以使用git log origin/master..origin
进行提交,并且您可以使用这些命令进行任何操作。
现在,根据您的情况,您需要在接收后在服务器上运行它。我不确定post-receive
是否具有此信息(因为参考文献已经更新)。但是,pre-receive
挂钩会接收到所有正在推送的提交的列表。将其连接到通知功能可能会更好。从answer链接到的Lasse V. Karlsen's comment具有如何执行此操作的详细信息。