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


当前回答

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

git fetch--全部

其他回答

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

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--全部

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

gitbranch-r--sort=提交日期

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

最好运行的命令是gitremoteshow[remote]。这将显示所有分支,远程和本地,跟踪和未跟踪。

以下是一个开源项目的示例:

> git remote show origin
* remote origin
  Fetch URL: https://github.com/OneBusAway/onebusaway-android
  Push  URL: https://github.com/OneBusAway/onebusaway-android
  HEAD branch: master
  Remote branches:
    amazon-rc2                   new (next fetch will store in remotes/origin)
    amazon-rc3                   new (next fetch will store in remotes/origin)
    arrivalStyleBDefault         new (next fetch will store in remotes/origin)
    develop                      tracked
    master                       tracked
    refs/remotes/origin/branding stale (use 'git remote prune' to remove)
  Local branches configured for 'git pull':
    develop merges with remote develop
    master  merges with remote master
  Local refs configured for 'git push':
    develop pushes to develop (local out of date)
    master  pushes to master  (up to date)

如果我们只想获得远程分支,我们可以使用grep。我们希望使用的命令是:

grep "\w*\s*(new|tracked)" -E

使用此命令:

> git remote show origin | grep "\w*\s*(new|tracked)" -E
    amazon-rc2                   new (next fetch will store in remotes/origin)
    amazon-rc3                   new (next fetch will store in remotes/origin)
    arrivalStyleBDefault         new (next fetch will store in remotes/origin)
    develop                      tracked
    master                       tracked

您还可以为此创建别名:

git config --global alias.branches "!git remote show origin | grep \w*\s*(new|tracked) -E"

然后你可以运行git分支。

我会使用:

git branch -av

该命令不仅显示所有分支的列表,包括以/remote开头的远程分支,而且还提供有关更新内容和上次提交注释的*反馈。