如何只获得最新合并的提交到git中的分支

时间:2017-02-18 05:36:39

标签: git

所以我发现我可以使用git log master --merges -1获取最新的合并。我想更进一步,只获得最新合并到掌握的最新提交。如何做到这一点?

例如,假设我有masterstagingfeature1feature2个分支。我将feature1合并到staging然后合并到master。然后我跟feature2做同样的事情。如何在合并feature2

之间实现这一点

3 个答案:

答案 0 :(得分:0)

您是否尝试过--children旗帜?

git log master --children --merges -1

或者你可以试试

https://gist.github.com/kohsuke/7590246

答案 1 :(得分:0)

git log -1 --merges --pretty=format:"%H"为您提供上次合并提交的SHA。

您可以使用此SHA过滤git rev-list --all --children的输出,并将结果限制为其父项为给定SHA1的提交。

COMMIT=`git log -1 --merges --pretty=format:"%H"`
git rev-list --all --children | grep "^${COMMIT}" | cut -f2 -d' '

根据git-rev-list documentation

  

<强> - 儿童   同时打印提交的子项(以“提交子项...”的形式)。

因此grep "^${COMMIT}"将确保输出将是从上次合并提交开始的行。

答案 2 :(得分:0)

git log master --merges -1之后,查看该合并的两个父提交。然后发出git log <parent1>..<parent2> --right-only --no-merges --format=format:%H列出来自feature2分支的提交。