3

我在 Git 存储库中有两个主要分支 - 开发和掌握。新功能开发发生在develop分支中,然后合并到master中进行部署。

我想确定从某个时间以来是否发生了从 develop 到 master 的合并。我什至对实际提交本身并不真正感兴趣,只是开发中的某些内容已合并到 master 中。

我努力了:

git rev-list --merges origin/develop..origin/master --since <date> | wc -l

在我知道有合并的一段时间内,但它似乎总是返回零。

更新

另外,我试图一步一步地建立它。从...开始:

git rev-list --merges origin/master --since <date>

我从开发分支和可能存在的任何修补程序分支中获得了所有合并到 master 中。只有当我添加“起源/开发”约束时,我才能得到任何结果。

4

2 回答 2

1

为了找到最后一次合并分支的时间,我会使用git merge-base. 这显示了两个分支共同的最新提交。

git merge-base origin/develop origin/master

这将在两个分支中提供最新的通用 SHA,让您了解它们上次合并的时间。您可以通过管道将提交 SHA 导入git log并查看最后一次提交。

git merge-base origin/develop origin/master | xargs git log -1

如果您想查看自此 SHA 以来分支上的所有提交:

git merge-base origin/develop origin/master | xargs -I sha git log sha..origin/develop

有了这个,您将能够看到origin/develop尚未提交的所有提交的列表origin/master

于 2014-04-28T20:17:41.073 回答
0

另一种选择应该是:

git log --merges --since=<date> --oneline origin/develop..origin/master
  • --merges 告诉日志只显示合并
  • --oneline 是可选的并格式化输出
于 2014-11-12T09:39:37.757 回答