git pull 响应消息含义

标签 git pull

如果我这样做:

git pull

git 回复:

Already up to date.

但如果我这样做:

git pull myRemote myBranch

git 回复:

From https://github.com/myUserName/myRemote
* branch            myBranch       -> FETCH_HEAD
Already up to date.

(根据 gitbranch -vv myRemote 和 myBranch 是默认值。)

问题:

  1. git 在这一部分试图告诉我什么
    来自 https://github.com/myUserName/myRemote
    * 分支 myBranch -> FETCH_HEAD
  2. 如果我只是 git pull,为什么 git 不提供此反馈?

(看起来 git 想要告诉我它是从 myRemote > myBranch pull 的,但在 git pull myRemote myBranch 的情况下,反馈似乎相当多余,而在 git pull 的情况下> 它实际上可能有用..)

最佳答案

首先,这些消息是由 Git pull 的“fetch”部分提供给您的。如果您使用 git fetch,您会得到相同的结果。

当你这样做时:

git pull myRemote myBranch

…您实际上并未将远程 myRemote 获取到本地 myBranch

myRemote 是远程存储库的名称,myBranch 是您想要的远程分支的名称从那里取回来。后面的参数实际上是一个refspec ,它允许您指定与可选的本地同系物关联的源(远程)引用。

您还可以使用通配符 * 和/或指定由空格分隔的多个引用规范,这使您能够一次性获取多个引用,因此会显示明确的消息,准确地告诉您每个引用会发生什么其中。

例如:

git fetch origin master:my_cutty_local_master

…将获取实际与 origin/master 相关的所有内容,然后在其之上创建一个名为 my_cutty_local_master 的本地分支。

所以 Git 在这里告诉您的是,服务器 myRemotemyBranch 的远程状态(实际上是:myRemote/myBranch)是本地获取,然后将 HEAD 放置在其顶部。实际上不是 HEAD,而是 FETCH_HEAD,它只是为了这个目的而临时存在的。

紧接着,git pull 执行 merge 过程,如果允许且可能的话,通常会以快进更新操作结束,否则会进行常规 merge 并解决冲突.

Why does git not give this feedback if I do just git pull?

因为在不带参数的情况下执行 git pull 时,只能获取一个引用规范,其中源和目标都是已知且隐式的:您更新当前分支,因此这里不需要额外的精度.

您可能还想使用 gitbranch -vva 来获取远程分支的名称。

关于git pull 响应消息含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75656418/

相关文章:

xcode - 将分支 merge 到 Xcode 11 中的 master 中?

docker - 如何从 GitLab 安装 Dockerfile 以允许拉取和提交

excel - 从关闭的工作簿宏中提取数据

css - Bootstrap 推拉无法正常工作

git - 升级 Oh My Zsh 时出现 'not a git repository' 错误

git - 对现有的 git 项目使用 gitgraph

git - 如何在 git 中 merge 单个文件?

Github 页面显示 master 分支,而不是 gh-pages

Git pull - 删除的文件

Github 远程分支和本地 Git 存储库