git - 为什么 `git pull` 会输出 "Already up-to-date"以外的信息?

标签 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之前当前目录下的文件已经是最新的了?

如果是,为什么除了“Already up-to-date”之外还有那部分?

除了“Already up-to-date”之外的输出部分是什么意思?

谢谢。

最佳答案

一个简短的回答是 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.

它所做的是计算你所有的远程(树、标签、提交,基本上是你在 merge 之前需要获取的东西),然后解压它们。

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 并发现你的分支已经是最新的,不需要执行 merge 。因此,它会输出熟悉的消息“已经是最新的”。

查看这个问题以获得更多信息和比我能给出的更好的解释:What does the output of git pull actually mean?

关于git - 为什么 `git pull` 会输出 "Already up-to-date"以外的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42845823/

相关文章:

git - 为什么 git 分支图不跟踪分支 "correctly"?

git - 从 Subversion 迁移到 git,克隆所有分支并通过 gitolite 推送?

android - Git/Github APK 失败

Git SVN 错误 : a Git process crashed in the repository earlier

python - 从特定提交提示 "requirements already satisfied"进行 Pip 安装

git - Mercurial : How to do a rebase like git's rebase

Git:如何从子目录中仅复制版本控制的文件?

IIS 的 wwwroot 中的 Git 工作树

git - 致命的 : 'jigar/test.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly

git - VS Code 无法打开终端