当我克隆远程存储库时,我使用了以下命令 -
git clone -b mybranch --single-branch git://sub.domain.com/repo.git
之后,当我做了git branch -l
时,它只是向我展示了我克隆的分支。现在,我想要拉另一个分支,但它没有向我显示其他分支。我该怎么办?
答案 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 055930b的commit 7687f19,commit 6b15595,Jeff 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 94a1380的commit a15d598(2018年8月30日)和Jeff King (peff
)(2018年6月22日)。
(由Junio C Hamano -- gitster
--在commit 7dc341c中合并,2018年9月17日)