我在Git存储库中有两个主要分支 - develop和master。新功能开发发生在开发分支之外,然后合并到主服务器进行部署。
我想确定自某个时间以来是否发生了从开发到主要的合并。我甚至对真正的提交本身并不感兴趣,只是来自develop的某些东西已合并为master。
我试过了:
git rev-list --merges origin/develop..origin/master --since <date> | wc -l
我知道有合并的时期,但似乎总是返回零。
更新
另外,我已经尝试逐步构建它。从:
开始 git rev-list --merges origin/master --since <date>
我从开发分支和可能存在的任何修补程序分支获得所有合并到master。只有当我添加“原点/开发”时才会这样做。约束我在结果中什么也得不到。
答案 0 :(得分: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
上进行的所有提交的列表。
答案 1 :(得分:0)
另一种选择应该是:
git log --merges --since=<date> --oneline origin/develop..origin/master