【问题标题】:Find which git branches have been merged to branch x, but are not yet in master?找出哪些git分支已经合并到分支x,但还没有在master中?
【发布时间】:2021-03-29 00:07:38
【问题描述】:

我有一个分支“UAT”,将合并几个功能分支进行测试。如何获取当前合并到“UAT”但尚未合并到 master 的分支列表?

因此考虑这个 UAT 分支(从 master 分支)与其他 2 个分支合并到其中:

UAT

  • JIRA-001
  • JIRA-002

所以我想要一个命令来显示 UAT 当前已将“JIRA-001”和“JIRA-002”合并到其中。

现在,如果我将 JIRA-001 合并到 master,我希望相同的命令显示 UAT 目前只有 JIRA-002 合并到其中。

这可能吗?根据此处的其他答案,我一直在尝试git branch --merged 的不同组合,但这并没有得到我想要的结果。

编辑 1 - 我非常想要这个 git log | grep "into UAT" | sort -u,但是当它们合并到 master 时,它们中的一部分会消失(但无法弄清楚那部分!)。

【问题讨论】:

  • 您似乎需要像 git rev-list --right-only --format='%m %D' --simplify-by-decoration master...UAT 这样的东西,它分别在两个 refs、master 和 UAT 之间产生一个仅右的 ref-diff。此外,| awk 'FNR % 2 == 0 摆脱了 commit ... 行(我希望我能知道 git 是否可以自己完成 awk 工作)。
  • @fluffy 这似乎也有效,谢谢!

标签: git merge branch git-branch


【解决方案1】:
 comm -3 <(git branch -a --merged master|sort -u) <(git branch -a --merged UAT|sort -u)

这应该会为您提供仅在 master 或 UAT 中合并的分支。 您可以使用 comm 参数 (-1, 2, 3) 来切换可见内容。 更多信息在这里:https://linux.die.net/man/1/comm

【讨论】:

  • 这得到了我想要的结果,谢谢!
  • 很高兴它有帮助,这是我在 stackoverflow 上的第一个答案,将打印这个;)
  • 恭喜您的第一个答案! :D
猜你喜欢
  • 1970-01-01
  • 2013-01-14
  • 2016-04-30
  • 2021-04-16
  • 2016-09-20
  • 2014-12-26
  • 2020-07-16
  • 2017-03-28
  • 2012-12-21
相关资源
最近更新 更多