使用 `git branch -a` 列出所有分支不显示最近获取的分支?

List all branches with `git branch -a` does not show recently fetched branch?

我在控制台中有以下历史记录:

Resolving deltas: 100% (58156/58156), completed with 1585 local objects.
From bitbucket.org:interos/datavana
 * branch                datavana.dev.py.3.7.3 -> FETCH_HEAD

$ git checkout datavana.dev.py.3.7.3
error: pathspec 'datavana.dev.py.3.7.3' did not match any file(s) known to git

$ git branch
* alex/dockerize
  master

$ git branch -a
* alex/dockerize
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

我在尝试时发现了一个问题 运行:

git checkout datavana.dev.py.3.7.3

因为如您所见,这没有用,而且这个分支也没有使用 git branch -a 列出,有人知道为什么我不能签出这个分支吗?

如果您查看问题的顶部,您会看到:

* branch                datavana.dev.py.3.7.3 -> FETCH_HEAD

这意味着远程引用 datavana.dev.py.3.7.3 已本地存储在 FETCH_HEAD 中。它没有创建同名的本地 b运行ch。

您可以创建 一个名为 datavana.dev.py.3.7.3 的本地 b运行ch 运行:

git checkout -b datavana.dev.py.3.7.3 FETCH_HEAD

您可能 运行 git fetch <remote> datavana.dev.py.3.7.3,在这种情况下,您看到的是预期的行为。来自 git-fetch 手册页:

The names of refs that are fetched, together with the object names they point at, are written to .git/FETCH_HEAD. This information may be used by scripts or other git commands, such as git-pull(1).

您通常会使用 git checkout.

检出远程 b运行ch