当分支未在git branch -l中显示时更改分支

时间:2013-07-07 17:32:53

标签: git github github-for-windows

当我克隆远程存储库时,我使用了以下命令 -

git clone -b mybranch --single-branch git://sub.domain.com/repo.git

之后,当我做了git branch -l时,它只是向我展示了我克隆的分支。现在,我想要拉另一个分支,但它没有向我显示其他分支。我该怎么办?

3 个答案:

答案 0 :(得分:1)

您可以使用git ls-remote命令直接在远程列表中列出分支:

git ls-remote git://sub.domain.com/repo.git

然后使用git fetch命令获取特定分支,并使用git checkout命令切换到分支。

答案 1 :(得分:0)

git branch -l向您显示本地分支机构。您需要远程分支,因此请尝试git branch -r。当您看到所需的分支时,您可以使用git checkout <remote branch name>自动创建和签出跟踪给定远程分支的本地分支。

例如,如果您的git branch -r显示了一个名为origin/my-feature的分支,请执行

$ git checkout my-feature

答案 2 :(得分:0)

请注意:

  • git branch --list默认情况下列出本地分支,而不列出远程分支(git branch -r):您可以在这些远程分支之后create local branches以便“查看其他分支”。
  • git branch -l仅将本地分支列为副作用:

它与git branch --list 不同,并且'-l'将在Git 2.19(2019年第三季度)中弃用。
-l”中的“ git branch -l”选项是不幸的简写 "--create-reflog",但新老用户不知何故 可能是其他东西,也许是“ --list”。
当“ -l”用作“ --create-reflog”的简写时,此步骤会发出警告,并警告将来使用它时会重新使用它。

请参见commit 055930bcommit 7687f19commit 6b15595Jeff King (peff)(2018年6月22日)。
(由Junio C Hamano -- gitster --commit d18602f中合并,2018年7月18日)

  

branch:不推荐使用“ -l”选项

     

-l”选项是“ --create-reflog”的缩写。多年来,这引起了很多混乱。
  大多数人希望它可以像“ --list”那样工作,因为那样会与其他匹配   -d / --delete-m / --move等“模式”选项,以及   -l的类似--list / git-tag选项。

     

在某些情况下,使用“ -l”出现 以“ --list”的作用更加混乱:

$ git branch -l
* master
     

因为branch命令默认为列表(因此,即使尝试在上面的命令中指定--list也是多余的。)
  但这可能会在以后添加模式时咬住用户,例如:

$ git branch -l foo
     

不会返回空列表,但实际上会创建一个   新分支(自然而然地带有reflog)称为“ foo”。

     

人们实际上使用“ -l”创建引用日志也很不常见。由于0bee591(在具有工作目录的任何存储库中默认启用reflog。,2006-12-14 Git v1.5.0),因此这是非裸露存储库中的默认设置。
  因此,很不幸,该功能蹲在简短而甜蜜的“ -l”上(仅在3a4b3f2中添加(创建/删除分支引用日志。,2006-05-19,Git v1 .4.0),这意味着实际上只有7个月了。

     

让我们弃用“ -l”,以期最终将其重新命名为“ --list”。


在Git 2.20(2018年第二季度)中,-l正式是--list的缩写。

请参见commit 94a1380commit a15d598(2018年8月30日)和Jeff King (peff)(2018年6月22日)。
(由Junio C Hamano -- gitster --commit 7dc341c中合并,2018年9月17日)