为什么git分支不显示分支?

为什么git分支不显示分支?,git,Git,在windows10的cmd中 >git branch * master 只显示了一个分支,即主分支。 我被告知还有另一个分支名为“staging”,但我没有看到它 当我运行以下命令时 >git checkout staging Branch staging set up to track remote branch staging from origin. Switched to a new branch 'staging' 然后 为什么先不显示暂存分支,然后再显示 谢谢。在您

在windows10的cmd中

>git branch
* master
只显示了一个分支,即主分支。 我被告知还有另一个分支名为“staging”,但我没有看到它

当我运行以下命令时

>git checkout staging
Branch staging set up to track remote branch staging from origin.
Switched to a new branch 'staging'
然后

为什么先不显示暂存分支,然后再显示


谢谢。

在您签出远程分支之前,git只列出本地分支

git branch -r
还将列出所有远程分支机构请注意Git说:

切换到新分支“暂存”

(我的重点)。分支
staging
在您要求Git签出之前不存在。Git尝试检查它,但失败了,所以它尝试创建它,结果成功了。这是git checkout内置的一个特殊操作:如果您要求按名称签出一个分支,而该名称与任何现有分支都不对应,git将查看是否有一个名为“足够接近”的所谓远程跟踪分支

要列出这些远程跟踪分支,请使用:

git branch --list --remotes
或者将其缩写为
git branch-lr
。如果您有
origin/zerblatt
,您可以通过运行
git checkout zerblatt
来创建自己的
zerblatt
。如果您没有这个功能,
git checkout
只会抱怨
zerblatt
不是它所理解的分支或路径


在评论中,你问:

[这]是因为克隆操作没有拉入暂存分支,而只拉入主分支吗

注意Git特有的术语:不能通过克隆来“拉”分支。单词
pull
表示
git pull
命令,我建议您避免使用该命令:它的意思是作为一种方便的快捷方式,但它可以做您不希望它做的事情

默认情况下,
clone
命令会克隆所有内容,但它会使您自己的私有存储库与其他Git存储库分离。另一个Git存储库有自己的分支,这些分支现在与您的分支不同。为了让它们为您分开,您的Git重命名了它们的所有分支:它们的
master
成为您的
origin/master
,它们的
staging
成为您的
origin/staging

这些
origin/*
名称是(您的,而不是它们的)远程跟踪分支,并对应于它们的(常规或本地)分支。您自己的本地分支可以随意使用,但最初,Git只创建一个分支,通常是
master


这里真正棘手的问题是分支的实际含义。您可能希望阅读(如果您对Git非常陌生,请稍后再阅读)。Git使用了几种不同的东西,它们都被松散地称为“分支”;虽然它们都是相关的,但它们并不相同。

克隆存储库时,在克隆的存储库中只会创建一个“普通”(本地)分支(在您的示例中是
主分支
)。源存储库的其他分支作为“远程”分支存储在克隆存储库中。通过将
-r
(仅列出远程分支)或
-a
(列出本地和远程分支)选项添加到
git分支
,可以查看它们

在你的情况下,它可能看起来像这样

> git branch -a
* master
  origin/master
  origin/staging
要创建一个新的本地分支,该分支指向与
源/暂存
相同的提交,请运行

> git branch staging origin/staging
或者,要同时检出该新分支,请执行以下操作:

> git checkout -b staging origin/staging

如中所示,显式命名
origin/stagin
是可选的

引述:

git结帐

[……]

如果找不到,但在一个具有匹配名称的远程(调用它)中确实存在跟踪分支,则视为 相当于

$ git checkout -b <branch> --track <remote>/<branch>
$git checkout-b--跟踪/

这样做的好处是自动设置新的本地分支以跟踪远程分支。

您创建了此分支吗?如果没有,请使用git checkout-b staging我没有这样做。我通过运行其他人的批处理文件克隆了远程回购。谢谢。开始时,我运行了一些批处理文件来克隆远程存储库。我的本地repo没有登台分支,这是因为克隆操作没有拉登台分支,而只拉主分支吗?
git branch -r