git 如何知道分支是最新的? `错误:当前分支没有跟踪信息。`

问题描述 投票:0回答:1

我很好奇如果

git
抱怨该分支缺乏跟踪信息,它如何知道该分支是最新的?

git pull -v --rebase=merges
POST git-upload-pack (155 bytes)
From https://github.com/org/repo
 = [up to date]        PLTFM-541_POSTGRES_PASSWORD_is_leaked -> origin/PLTFM-541_POSTGRES_PASSWORD_is_leaked
There is no tracking information for the current branch.
Please specify which branch you want to rebase against.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=<remote>/<branch> PLTFM-541_POSTGRES_PASSWORD_is_leaked

从上面的输出中我们可以看到我的分支已绑定到原始存储库:

PLTFM-541_POSTGRES_PASSWORD_is_leaked -> origin/PLTFM-541_POSTGRES_PASSWORD_is_leaked

但是从下面的下一条消息中我们看到事实并非如此:

If you wish to set tracking information for this branch you can do so with
git git-pull
1个回答
1
投票

我很好奇如果 git 抱怨的话,它如何知道分支是最新的 关于缺乏该分行的跟踪信息?

它没有 - 正如你正确写的那样。您误解了 git 的输出。

从上面的输出中我们可以看到我的分支已绑定到原始存储库:

PLTFM-541_POSTGRES_PASSWORD_is_leaked -> 原点/PLTFM-541_POSTGRES_PASSWORD_is_leaked

不,这是一个误会。完整的输出是:

= [最新] PLTFM-541_POSTGRES_PASSWORD_is_leaked -> origin/PLTFM-541_POSTGRES_PASSWORD_is_leaked

仅打印此输出,因为您使用了

git pull -v
- 如果没有
-v
,则不会打印该输出。此输出只是告诉您:

  • 在拉取的“获取”部分,git 在您的存储库中发现了一个远程跟踪分支“origin/PLTFM-541_POSTGRES_PASSWORD_is_leaked”
  • 此远程跟踪分支与上游存储库“origin”(GitHub 存储库)中的分支“PLTFM-541_POSTGRES_PASSWORD_is_leaked”同步
  • 并且这两个分支已经同步(由“=”表示)

这并没有说明您的 local 分支“PLTFM-541_POSTGRES_PASSWORD_is_leaked”,即使此本地分支与远程分支具有相同的名称。

要理解的关键是:

Git 有本地分支远程跟踪分支。两个分支实际上都存储在您的本地存储库中(因此从某种意义上来说都是本地的),但它们仍然不同。

但是,您可以通过将远程跟踪分支设置为本地分支的所谓“上游分支”或“跟踪分支”,将本地分支“链接”到远程跟踪分支。这就是命令

git branch --set-upstream-to=...
的作用,以及克隆存储库时“master”分支默认发生的情况。

您可以在例如的输出中看到此“跟踪信息” “git分支-vv”:

$ git branch -vv
feature/do-stuff    b234657 [origin/feature/do-some-stuff] fix issues
* master            44ea3fa [origin/master] implement stuff
mylocalbranch       54ad3ea do local stuff

在这里,您有三个本地分支:“feature/do-stuff”、“master”、“mylocalbranch”。前两个有远程跟踪分支作为其跟踪/上游分支(在尖括号中显示),第三个没有上游分支(就像您的情况一样)。

欲了解更多解释,请参见Git 书籍,章节 3.5 Git 分支 - 远程分支

© www.soinside.com 2019 - 2024. All rights reserved.