Linux 如何列出未合并到给定分支的'git'分支?

Linux 如何列出未合并到给定分支的'git'分支?,linux,bash,git,Linux,Bash,Git,即。类似于git branch的东西-remotes-没有合并的origin/master origin/prod origin/dev-但是它列出了所有没有合并到任何给定分支的分支列出了没有合并到任何给定分支的分支 如果要聚合分支, 只是: 然后数一数出现3次的那个…我想我已经问过这个问题了 如果要聚合分支, 只是: 然后计算出现3次的次数…如果需要执行一次: git branch --no-merged branch1; git branch --no-merged branch2|awk

即。类似于git branch的东西-remotes-没有合并的origin/master origin/prod origin/dev-但是它列出了所有没有合并到任何给定分支的分支列出了没有合并到任何给定分支的分支

如果要聚合分支, 只是:


然后数一数出现3次的那个…

我想我已经问过这个问题了

如果要聚合分支, 只是:


然后计算出现3次的次数…

如果需要执行一次:

git branch --no-merged branch1; git branch --no-merged branch2|awk 'a[$0]++==2'
您应该计算您编写了多少分支命令,并调整awk行中的2


如果必须经常执行此操作,可以编写一个小shell循环来接受分支名称,并在awk中使用dynamic 2执行相同操作。

如果需要执行一次:

git branch --no-merged branch1; git branch --no-merged branch2|awk 'a[$0]++==2'
您应该计算您编写了多少分支命令,并调整awk行中的2

如果必须经常执行此操作,可以编写一个小shell循环来接受分支名称,并对awk中的dynamic 2执行相同的操作。

解决方案 我最终得到了一个类似于以下内容的解决方案:

git分支-远程-无合并的源/主|\ grep-固定字符串-反转匹配-文件=解决方案 我最终得到了一个类似于以下内容的解决方案:

git分支-远程-无合并的源/主|\
grep-fixed strings-invert match-file=未合并到这些列出的分支中的所有分支。不合并为无?“你的意思是不合并成任何形式?”肯特不知道用英语怎么说才对。可能你是对的。@Kent我刚刚按照你的建议编辑了这个问题,但现在我不确定它是否正确。在这种情况下,你对你的英语知识有把握吗?我的英语水平在这里还不够。在我看来,“未合并到任何”似乎与“未合并到A”或“未合并到B”相似,而“未合并到无”的意思是“未合并到A”和“未合并到B”。你认为呢?@Kent fyi,我刚刚在英语中问过。stackexchange:所有未合并到这些列出的分支中的任何一个的分支。不合并为无?“你的意思是不合并成任何形式?”肯特不知道用英语怎么说才对。可能你是对的。@Kent我刚刚按照你的建议编辑了这个问题,但现在我不确定它是否正确。在这种情况下,你对你的英语知识有把握吗?我的英语水平在这里还不够。在我看来,未合并到任何中看起来像未合并到A中或未合并到B中,而未合并到无中,我的意思是未合并到A中,也未合并到B中。你认为呢?@Kent fyi,我刚刚在英语上问过它。stackexchange:这是一个使用awk的非常有趣的解决方案,但你能解释一下最后一个A[$0]+==2参数是如何工作的吗?看起来我们假设对重复项进行计数,并过滤重复次数少于2次的分支,但不确定,这个参数在这里看起来很神奇:@whyer的a[$0]是一个hashtableawk关联数组,键是分支名称,值是int。您是对的,对于同一个分支名称,我们使用的是a[]记录它在输出中出现的次数。当我们打印输出时,我们将引用的值取为a[]==2thx。依我看,这值得附在答案后面!很好的解释这是一个使用awk的非常有趣的解决方案,但是你能解释一下最后一个[$0]+==2参数是如何工作的吗?看起来我们假设对重复项进行计数,并过滤重复次数少于2次的分支,但不确定,这个参数在这里看起来很神奇:@whyer的a[$0]是一个hashtableawk关联数组,键是分支名称,值是int。您是对的,对于同一个分支名称,我们使用的是a[]记录它在输出中出现的次数。当我们打印输出时,我们将引用的值取为a[]==2thx。依我看,这值得附在答案后面!很好的解释HTH-我希望我的q&a能帮助某人HTH-我希望我的q&a能帮助某人问这样一个问题:如果一个分支合并到一个分支主节点中,这个问题是关于它是否合并到多个分支中的任何一个分支。您建议的解决方案将过滤掉合并到所有给定分支中的分支。这个问题是关于如何过滤掉合并到任何一个分支的分支。这个问题询问如果一个分支合并到一个分支主节点,这个问题是关于它是否合并到多个分支中的任何一个分支。您建议的解决方案将过滤掉合并到所有给定分支的分支。问题是如何过滤掉合并到任何一个分支中的分支
$ echo prod branch2 branch3 branchN
prod branch2 branch3 branchN
$ echo prod branch2 branch3 branchN | \
>     tr ' ' '\n'
prod
branch2
branch3
branchN
echo prod branch2 branch3 branchN | \
>     tr ' ' '\n' | \
>     xargs --replace \
>     git branch --remotes --merged origin/{}
git branch --remotes --merged origin/prod;
git branch --remotes --merged origin/branch2;
git branch --remotes --merged origin/branch3;
git branch --remotes --merged origin/branchN;
  origin/some-branch-merged-into-prod
  origin/branch2A-merged-into-branch2
  origin/branch2B-merged-into-branch2
  origin/some-other-branch-merged-into-branchN
git branch --remotes --no-merged origin/master
  origin/some-branch-not-merged-into-any-given-branch
  origin/branch2A-merged-into-branch2
  origin/some-other-branch-merged-into-branchN
  origin/some-branch-not-merged-into-any-given-branch