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

标签 git version-control git-log

我只是想创建一个 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/

相关文章:

git merge recursive theirs,它是如何工作的?

Git 存储库丢失了它的远程分支?

git - 版本控制 : Managing Common Component Source

ios - Xcode 存储库指标含义

git log --before ="4 months"显示 3 周前提交的分支。我究竟做错了什么?

git-remote-https 无法 fork 加载到不同地址的 msys-unistring-2.dll

git - 我如何设置 Carthage 以使用我自己的框架,这些框架位于私有(private)存储库中,例如 Stash (Bitbucket)?

git - 如何获取两个 git 分支之间不同提交的列表?

git - 如何显示带有分支名称的git日志

git - 带有 VCS 后端的 Wiki?