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


当前回答

如果有一个您知道应该列出的远程分支,但它没有列出,您可能需要验证您的源是否正确设置,如下所示:

git remote show origin

如果这一切都很好,也许你应该运行更新:

git remote update

假设运行成功,您应该能够按照其他答案所述进行操作:

git branch -r

其他回答

您还可以执行git fetch,后跟git branch-r。没有fetch,您将看不到最新的分支。

git branch -a | grep remotes/*

我找到的最简单的方法是:

git branch -a

假设您在远程存储库上有以下分支: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>列出

最好运行的命令是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分支。