git分支未显示所有分支

58
/opt/lampp/htdocs/drupal-8.4.0$ git branch
我已经在我的系统中安装了Drupal,但我想切换到其他分支时,使用git branch命令没有显示其他分支!

我在系统中安装了Drupal,但切换分支时使用git branch命令未显示其他分支。


1
如果你指的是远程分支,那么你应该使用 git branch -a 命令。 - Pavel
@Pavel 我试过了,但它不起作用,它没有返回任何东西! - Mohit Malik
14个回答

77

执行 git branch -av 命令可以显示所有远程和本地分支。


69

你可能没有那些分支的本地副本。

要拉取所有额外的分支,

git fetch

应该像这样而不是上面那样

git fetch --all or git fetch <branch Name>

那么您可以使用checkoutbranch来检查它是否显示。

git checkout name-of-the-branch
git branch

11

git branch --all

这个 git 命令将显示所有分支。


10
如果你的仓库没有任何提交,你就会遇到这种情况。 如果你进行一次提交,那么当你执行 git branch 命令时,你当前的分支将会出现。

哦天啊 :捂脸: - Aage

9

使用 git branch -a 命令查看仓库中的所有分支,然后使用 git checkout 分支名称 命令切换到相应的分支。


上面发布的错误提示表明您在本地仓库中存在权限问题。您可能需要更改目录权限以使其正常工作。从包含您的仓库的父目录中运行 chown -R youruser reponame 命令。如果您使用sudo克隆仓库,则可能会出现权限问题。 - slashpai
使用 "git fetch"。 - Magaesh

6

首先执行git fetch命令,以便从远程获取更多的分支信息,然后再进行pull操作。


听起来像是权限问题。尝试以下@slashpai建议的步骤,然后再次尝试获取。 - Caio Sym

5

我对此进行了基本测试。脚本: git branch -r 依赖于本地 git 仓库的远程引用。

为了获取远程分支,最佳实践是:

  1. 首先,执行脚本:git pull / git fetch /... 将最新的远程仓库数据同步到您的本地仓库;

  2. 然后执行脚本:git remote prune origin 清理本地 git 仓库中那些不存在的 git 分支;

  3. 最后,执行脚本:git branch -r


3
  • 打开git bash

  • 在正确的git项目文件夹中运行以下命令:

    git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
    
  • 获取

然后你应该最终能够看到其他的分支。

1
我实际上遇到了“fatal: invalid refspec '+refs/heads/:refs/remotes/origin/'”错误。我还需要做其他步骤吗? - Cloud Cho
使用这个命令破坏了代码库。 - Ilya Shevyryaev
以上命令有误。正确的命令如下:git config remote.origin.fetch "+refs/heads/:refs/remotes/origin/" - Sugoi Reed

2

执行 git branch -a 命令,会显示远程所有分支。 另一个选项是执行 git fetch --all 命令,然后你可以进行任何操作。 例如,如果你想切换分支,则执行 git checkout <从显示的分支中选择的分支名称>


0

我遇到了同样的问题,但是没有一个答案能够帮助我。

我的问题出在我使用 git clone 命令时添加了 depth 参数。这是我的错误。所以我再次克隆了它(不带 depth 参数),现在我可以看到所有的分支了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接