Git pull 不会获取新标签和新分支,但 git fetch 会获取新标签和新分支

VaT*_*aTo 6 git

当我的同事告诉我他已经将它们推到仓库中并且它们出现在仓库中时,我在尝试获取新创建的标签时遇到了麻烦。直到我使用 git fetch 时,我才可以获得新标签,并实际通知我创建了一个新分支。我知道 git pull 基本上是 git fetch 和 git merge 所以我想知道为什么它没有得到最新的更改。这里分两种情况:

git pull origin dev
From ******.****.*****/*******
 * branch            dev        -> FETCH_HEAD
Already up-to-date.

git fetch
From ****.****.com:*******/*******
   ae06d29..958f332  master     -> origin/master
 * [new branch]      task-Q -> origin/task-Q
 * [new tag]         demo_5-21  -> demo_5-21
 * [new tag]         demo_5_27  -> demo_5_27
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

Chr*_*ris 4

看看概要git pull我们可以看到:

'git pull' [options] [<repository> [<refspec>...]]

当您运行时,git pull origin dev您指定要从dev远程提取 refspec origin。由于您专门要求分支dev,因此不会拉取其他分支或标签。

相反,尝试一下git pull --all

  • 实际上,“--all”标志会获取_所有遥控器_(如果您有除“origin”之外的遥控器,那么 git 将获取它们中的每一个)。我在下面添加了另一个答案来解释。 (3认同)