当我克隆一个远程存储库时,我使用了以下命令-
git clone -b mybranch --single-branch git://sub.domain.com/repo.git
在那之后,当我做了一个git branch -l
它只是向我展示了我克隆的分支。现在,我想要拉另一个分支,但它没有显示其他分支。我应该怎么办?
当我克隆一个远程存储库时,我使用了以下命令-
git clone -b mybranch --single-branch git://sub.domain.com/repo.git
在那之后,当我做了一个git branch -l
它只是向我展示了我克隆的分支。现在,我想要拉另一个分支,但它没有显示其他分支。我应该怎么办?
git ls-remote
您可以使用以下命令直接在遥控器上列出分支:
git ls-remote git://sub.domain.com/repo.git
然后使用git fetch
command 获取特定分支并使用git checkout
command 切换到该分支。
git branch -l
向您展示当地分支机构。你想要远程分支,所以试试git branch -r
. 当你看到你想要的分支时,你可以自动创建并签出一个本地分支,使用git checkout <remote branch name>
.
例如,如果您git branch -r
显示一个您想要调用的分支origin/my-feature
,只需执行
$ git checkout my-feature
注意:
git branch --list
,默认情况下,列出本地分支,而不是远程分支 ( git branch -r
):您可以在这些远程分支之后创建本地分支,以便“查看其他分支”。git branch -l
仅将本地分支机构列为副作用:它与不同git branch --list
,并且-l
Git 2.19(2019 年第三季度)将弃用 ' '。
" " 中的 " -l
" 选项是 " "的git branch -l
一个不幸的简写形式
,但是许多新老用户都以某种方式期望它是别的东西,也许是 " "。当“ ”用作“”的简写
时,此步骤会发出警告,并在使用它时警告它的未来用途。--create-reflog
--list
-l
--create-reflog
请参阅Jeff King ( ) 的提交 055930b、提交 7687f19、提交 6b15595(2018 年 6 月 22 日)。(由Junio C Hamano 合并 -- --在d18602f 提交中,2018 年 7 月 18 日)peff
gitster
branch
: 弃用 "-l
" 选项“
-l
”选项是“”的缩写--create-reflog
。多年来,这引起了很多混乱。
大多数人希望它作为“--list
”工作,因为这将匹配其他“模式”选项,如-d
/--delete
和-m
/--move
,以及类似的-l
/--list
选项git-tag
。更令人困惑的是,在某些情况下,使用 "
-l
"似乎与 " " 一样工作:--list
$ git branch -l * master
因为分支命令默认为列表(所以即使尝试
--list
在上面的命令中指定也是多余的)。
但这可能会在用户添加模式时咬住用户,例如:$ git branch -l foo
它不会返回一个空列表,但实际上会创建一个名为“foo”的新分支(自然带有 reflog)。
人们实际使用 "
-l
" 来创建 reflog 也可能很少见。由于0bee591(在任何具有工作目录的存储库中默认启用 reflogs。,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
.
请参阅Jeff King ( ) 的提交94a1380 ( 2018 年 8 月 30 日)和提交 a15d598(2018 年 6 月 22 日)。(由Junio C Hamano 合并——在提交 7dc341c中,2018 年 9 月 17 日)peff
gitster