Git pullfetch 是 Git 用户经常使用的两个命令。我们看看这两个命令之间的区别。

先说一下背景——我们可能正在克隆仓库。什么是克隆?它只是另一个仓库的副本,也就是说你拷贝一份他人的源代码。

当源文件有更新的时候,要使你的克隆副本保持最新状态,就需要将这些更新引入到克隆副本。

这里就需要用到 fetchpull

git fetch 命令是告诉你的本地 git 从源文件中检索最新元数据信息(但尚未进行任何文件传输,它更像是检查是否有可用的更新)。

git pull 会做相同的操作,还会从远程仓库中引入(复制)那些更新。

例如:

git pull origin ankur bugfix

要记住的一点是,你的工作站上通常至少有三个项目的副本。

  • 一个副本是你自己的存储库,有自己的提交历史记录(可以说是已经保存的一个)。
  • 第二个副本是你正在编辑和构建的工作副本(尚未提交到你的仓库)。
  • 第三个副本是远程仓库的本地“缓存”副本(可能是你从中克隆副本的原始文件)。

你可以使用 git fetch  来了解自上次 pull 以来在远程仓库/分支中所做的更新。这有助于在进行实际 pull 之前进行检查——实际 pull 可能会更改当前分支和工作副本中的文件(并可能丢失所做的更新等)。

git fetch    
git diff ...origin

原文:Git Fetch vs Pull: What's the Difference Between the Git Fetch and Git Pull Commands