为什么需要git pull来更新(不同的)分支(将分支移至没有git pull的最新提交)?

sdbbs

我很乐意为这个问题写一个更精确的话题,但目前我无法更好地表达它。

基本上,假设您有一个仓库,其中有多个分支,例如“ master”和“ mybranch”。

因此,假设您在掌握知识:

$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

那你就git pull在这里 master分支和都检索新提交mybranch由于您已经在branch中mastermaster因此其HEAD被自动更新git为最新收到的提交。

现在,假设您使用checkout更改了分支:

$ git checkout mybranch
Switched to branch 'mybranch'
Your branch is behind 'origin/mybranch' by 2 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)

现在,这使我感到困惑-在上一遍中,(显然)所有最新提交(包括其中的提交)mybranch都已被检索;否则我的本地git不会“知道”我的本地分支“落后于……2次提交”。

所以我的问题是:当我们已经有这些新的提交要mybranch下载时,为什么要再次进行“ git pull”,不必要地往返服务器是否没有“ git update-head”或某些命令,它们可以在本地进行,而无需往返服务器?

蒂姆·比格莱森(Tim Biegeleisen)

您对第一步发生的情况的解释不正确。当你做了git pullmaster分支,你真的这样做git pull origin master这将更新本地跟踪分支origin/master,然后将该分支合并到本地master以快速转发它。它不影响其他分支。

如果您只想往返于Git服务器,则可以尝试执行以下操作:

git fetch origin   # update all local tracking branches
# from e.g. mybranch
git merge origin/mybranch

然后,如果您还想更新本地master分支,则只需签出并合并:

git checkout master
git merge origin/master

请注意,以上两个步骤完全在本地进行,独立于远程Git服务器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

git pull:为什么需要特定的分支?

使用Git将最新提交移至新分支

git pull不更新合并分支的分支

Git:git pull-从特定提交开始,直到最新的提交跳过1个提交?

为什么我的git分支未指向最新提交?

git pull是否更新所有跟踪的分支?

Git pull:确定哪个分支包含更新

git checkout最新分支并返回最新提交

为什么在执行 git pull 后需要修补(或应用)差异

如何使用最新的更新来更新从github pull请求创建的git分支

为什么在签出远程分支后立即实施时“ git pull”会更新文件?

在 certrain 分支中只有“git pull”做什么?

为什么“ Git pull”不能从远程仓库中拉出所有分支

为什么我每次都需要小的 Git 提交?

为什么“git pull origin feature-12345 master”是更新我的 pull request 分支的唯一方法?

我做了git pull --rebase,现在我的分支中有其他所有人的提交了-为什么

GIT如何将提交从分支拆分为不同的分支?

为什么git要求输入提交消息来解释为什么需要这种合并

从分支获取最新的Git提交哈希的命令

如何从原始分支`git pull`

从远程主分支的git pull

为什么git pull不拉新创建的分支,而该分支被推到远程了?

将现有的已提交的工作移至git中的新远程分支

将现有未提交的工作移至Git中的新分支

git pull表示本地主分支与源主分支是最新的;不是

Git rebase Feature分支弄乱了对develop / master分支的pull请求中的提交

git提交后git pull

根据分支将git pull和push到不同的默认遥控器

为什么 git pull 失败?