如何使用git列出远程A但不在远程B中的分支?

时间:2017-05-03 19:44:35

标签: git git-branch git-remote

例如,如果我有一个我开发的“主”上游存储库,以及我在完成工作日之后备份我的工作的副存储库 - 现在我想要删除不存在的侧存储库中的分支

如何列出存在于“side”遥控器但不在“main”遥控器中的分支?

1 个答案:

答案 0 :(得分:1)

更新 - 收集了来自torek的反馈意见 更新2 - 建议编写脚本的小但可能重要的更改

好吧,git并没有考虑多个回购中存在的分支。您在本地仓库中有分支,并且您在任何给定的远程中都有分支的快照...并且本地分支可能与远程分支的名称相同,但它仍然不是"同一个分支" git。

只有跟踪提供了一种错觉,即#34;同一个分支"在两个回购。 (并且仅作为惯例,通常将本地分支命名为与远程分支相同。)这也是有限的,因为您不能有一个本地分支跟踪两个远程分支...

这是一个很长的说法,我不认为git可以做你所要求的;你可能需要以某种方式对一些git输出进行后期处理。

您可以通过说

来获取遥控器中的分支列表
git for-each-ref refs/remotes/<remote-name>

您可以使用cut来获取基本分支名称(cut -d\/ -f 4-)。 (请注意尾随-,这在/仅当您的分支名称包含/时很重要。)然后排序。然后转到comm以查看哪些行显示在两者中,或只显示在一行中。