2

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

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

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

4

3 回答 3

1

git ls-remote您可以使用以下命令直接在遥控器上列出分支:

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

然后使用git fetchcommand 获取特定分支并使用git checkoutcommand 切换到该分支。

于 2013-07-07T18:46:04.480 回答
0

git branch -l向您展示当地分支机构。你想要远程分支,所以试试git branch -r. 当你看到你想要的分支时,你可以自动创建并签出一个本地分支,使用git checkout <remote branch name>.

例如,如果您git branch -r显示一个您想要调用的分支origin/my-feature,只需执行

$ git checkout my-feature
于 2013-07-07T17:34:21.793 回答
0

注意:

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

不同git branch --list,并且-lGit 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

于 2018-07-19T20:57:41.107 回答