我尝试过gitbranch-r,但它只列出了我在本地跟踪的远程分支。我如何找到我没有的列表?(该命令是否列出所有远程分支或仅列出未跟踪的分支对我来说无关紧要。)


当前回答

假设您在远程存储库上有以下分支:gitbranch-a为您提供:

*remotes/origin/release/1.5.0
 remotes/origin/release/1.5.1
 remotes/origin/release/1.5.2
 remotes/origin/release/1.5.3
 remotes/origin/release/1.6.0

根据上面的结果,命令gitbranch-rl'*/origin/release/1.5*'给出如下:

 origin/release/1.5.1
 origin/release/1.5.2
 origin/release/1.5.3

-r代表远程

-l使用<pattern>列出

其他回答

为了得到我想要的东西,我最后做了一个乱七八糟的外壳管道。我刚刚合并了源远程的分支:

git branch -r --all --merged \
    | tail -n +2 \
    | grep -P '^  remotes/origin/(?!HEAD)' \
    | perl -p -e 's/^  remotes\/origin\///g;s/master\n//g'
git branch -a | grep remotes/*

使用此命令获取所有分支,

git fetch--全部

对于这里的绝大多数访问者来说,“我如何在Git 1.7+中列出所有远程分支?”这个问题的正确和最简单的答案是:

git branch -r

对于少数[1]git分支-r不起作用。如果gitbranch-r不起作用,请尝试:

git ls-remote --heads <remote-name>

如果git branch-r不起作用,那么可能正如Cascabel所说的“您修改了默认的refspec,这样git fetch和git remote update就不会获取所有远程的分支”。


[1] 在撰写本脚注2018年2月时,我查看了评论,发现git branch-r适用于绝大多数人(约90%或140人中的125人)。

如果gitbranch-r不起作用,请检查git-config-get-remote.origin.fetch是否包含通配符(*)

接受的答案对我有用。但我发现从最近的提交开始排序更有用。

gitbranch-r--sort=提交日期

https://git-scm.com/docs/git-branch