协慌网

登录 贡献 社区

如何在 Git 1.7 + 中列出所有远程分支?

我尝试了git branch -r ,但是只列出了我在本地跟踪的远程分支。如何找到我还没有的人的名单? (对我来说,命令列出所有远程分支还是仅列出未跟踪的分支都无关紧要。)

答案

对于此处的绝大多数访问者 [1] ,正确和最简单的回答是“如何在 Git 1.7 + 中列出所有远程分支?” 的问题。是:

git branch -r

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

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

如果git branch -r不起作用,则可能如Cascabel所说: “您已经修改了默认的git fetchgit remote update不会获取所有remote的分支”


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

如果git branch -r不起作用,请按照此答案git config --get remote.origin.fetch包含通配符( *

remote show显示了远程上的所有分支,包括那些未在本地跟踪的分支,甚至尚未提取的那些。

git remote show <remote-name>

它还尝试显示相对于本地存储库的分支状态:

> git remote show origin
* remote origin
  Fetch URL: C:/git/.\remote_repo.git
  Push  URL: C:/git/.\remote_repo.git
  HEAD branch: master
  Remote branches:
    branch_that_is_not_even_fetched new (next fetch will store in remotes/origin)
    branch_that_is_not_tracked      tracked
    branch_that_is_tracked          tracked
    master                          tracked
  Local branches configured for 'git pull':
    branch_that_is_tracked merges with remote branch_that_is_tracked
    master                 merges with remote master
  Local refs configured for 'git push':
    branch_that_is_tracked pushes to branch_that_is_tracked (fast-forwardable)
    master                 pushes to master                 (up to date)
git branch -a | grep remotes/*