除了“已经是最新的”之外,为什么`git pull`输出信息?

时间:2017-03-16 22:19:23

标签: git

$git pull

remote: Counting objects: 12, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 12 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (12/12), done.
From https://git.xxx.net/xxx/xxx
   e6a2fdc..eb88a8f  B03379     -> origin/B03379
   e4cd081..7d5d84d  B03405     -> origin/B03405
Already up-to-date.

这是否意味着在运行git pull之前当前目录中的文件已经是最新的?

如果是的话,为什么除了“已经是最新的”之外还有那个部分?

除了“已经是最新的”之外,输出部分是什么意思?

感谢。

2 个答案:

答案 0 :(得分:6)

简短回答是git pull实际上正在运行git fetch,然后是git merge,您看到的输出与这些命令有关。

这是git fetch部分:

remote: Counting objects: 12, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 12 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (12/12), done.

这样做是为了计算所有的遥控器(树,标签,提交,基本上你需要在合并之前获取的东西),然后解压缩它们。

From https://git.xxx.net/xxx/xxx
   e6a2fdc..eb88a8f  B03379     -> origin/B03379
   e4cd081..7d5d84d  B03405     -> origin/B03405

解释这个问题的另一个答案,这一部分意味着你已经取得了分支机构' B03379'来自给定的遥控器; ref origin / B03379现在指向它。

Already up-to-date.

现在git进入merge并发现你的分支已经是最新的,并且不需要执行合并。因此,它会输出熟悉的消息,“已经是最新的。”

查看此问题以获取更多信息,并提供比我能给出的更好的解释:What does the output of git pull actually mean?

答案 1 :(得分:3)

  

已经是最新的。

这意味着当前已检出的分支已与上游最新 所以没有什么可以合并。

之前的是git fetch的{​​{1}}部分。

由于git pull为git pull + git fetch,所以你看到的是获取部分。
更新了两个远程跟踪分支 但是你当前的分支不是,因为它自己的上游远程跟踪分支没有更新(没有从远程仓库git merge获取新的提交)