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


当前回答

使用gitbranch-r列出所有远程分支,gitbranch-a列出本地和远程的所有分支。但这些列表已经过时了。要使这些列表保持最新,请运行

git remote update --prune

这将使用远程的所有新分支列表更新本地分支列表,并删除不再存在的分支列表。在不使用--prune的情况下运行此更新命令将检索新分支,但不会删除远程上不再存在的分支。

您可以通过指定一个远程来加快此更新,否则它将从您添加的所有远程中提取更新,如下所示

git remote update --prune origin

其他回答

使用GitBash,您可以使用:

git branch -a

使用gitbranch-r列出所有远程分支,gitbranch-a列出本地和远程的所有分支。但这些列表已经过时了。要使这些列表保持最新,请运行

git remote update --prune

这将使用远程的所有新分支列表更新本地分支列表,并删除不再存在的分支列表。在不使用--prune的情况下运行此更新命令将检索新分支,但不会删除远程上不再存在的分支。

您可以通过指定一个远程来加快此更新,否则它将从您添加的所有远程中提取更新,如下所示

git remote update --prune origin

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

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 fetch origin
git branch -a