首先,为了确保得到输出,无论是在远程端实际找到新分支还是提交,您都可以进行详细获取:
git fetch -v
然后任何未更新的远程分支将在输出中显示为(例如)
= [up to date] my_awesome_branch -> origin/my_awesome_branch
= [up to date] yet_another_branch -> origin/yet_another_branch
但除此之外,即使在成功获取并且现在在本地 repo 中有新的引用之后,请注意此时只有远程跟踪分支会更新以反映其对应部分的状态远端。
但是,您的本地分支机构仍处于提取操作之前的状态。
有了这个获取输出的例子:
$ git fetch
remote: Counting objects: 143, done.
remote: Compressing objects: 100% (143/143), done.
remote: Total 143 (delta 118), reused 0 (delta 0)
Receiving objects: 100% (143/143), 16.54 KiB | 1.65 MiB/s, done.
Resolving deltas: 100% (118/118), completed with 53 local objects.
From ssh://<repoNameRedacted>
* [new branch] feature-2541 -> origin/feature-2541
433c28824..9924cc527 bugfix-9891 -> origin/bugfix-9891
如果你现在要处理 bugfix-9891 并获得最新的工作,那么
git checkout bugfix-9891
...会将您的 HEAD 指向该本地分支,允许您对其进行处理,但您将没有拥有最近的提交,即使您事先获取了它们。他们在远程跟踪origin/bugfix-9891,但仍然不在你的本地版本bugfix-9891。
要真正合并这些更改并在它们之上工作,您必须
git checkout bugfix/9891
git merge origin/bugfix/9891
我们还要注意,有一种非常常见的(尽管不是必需的)方法来自动化 [fetch + merge with remote] 过程,即:
git checkout bugfix/9891
git pull