我只是想创建一个 git 钩子(Hook),它会在每次“接收后”时向我们的 ms-teams channel 发送有关所有提交的通知。
git hook 本身可以工作,但是使用命令 git log -1 --pretty=format:'%s'
我只得到最后的提交消息,如果您将多个提交推送到 master,这不是很有用。
有没有办法在每次推送时获取所有受影响的提交的数据(消息、作者、提交日期、提交编号、usw.)?
我在 Stack Overflow 上查找了很多问题,但没有找到适合我的问题的解决方案。
最佳答案
通常来说,您的origin/master
将是您上次同步后master
在远程origin
上的位置。 master
将是您当前的分支。这些之间的提交将是你感兴趣的,你可以使用 git log origin/master..origin
获取它们,你可以用它们做任何你想做的事。
现在,在您的情况下,您需要在接收后在服务器上运行它。我不确定 post-receive
是否有此信息(因为引用已经更新)。但是 pre-receive
钩子(Hook)接收所有被推送的提交的列表。也许将此连接到您的通知功能会更好。 answer链接至 Lasse V. Karlsen's comment有关于如何执行此操作的详细信息。
关于git - 如何获取在 git 中上次推送中受影响的所有提交消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60000712/