--- title: Git Pull Vs Git Fetch localeTitle: Git Pull和Git Fetch --- git用户经常使用这两个命令。让我们看看两个命令之间的区别。 为了上下文,值得记住我们​​可能正在克隆回购中工作。什么是克隆?只是另一个存储库的副本。它基本上是你自己的别人的源代码副本。 也就是说,为了让您的克隆更新可能已经应用于原始的任何更改,您需要将它们带到您的克隆。这就是`fetch`和`pull`进来的地方`git fetch`是告诉你的本地git从原始文件中检索最新的元数据信息的命令(但是没有进行任何文件传输。更像是检查是否有任何文件传输。可用的变化)。另一方面, `git pull`会从远程存储库中带来(复制)这些更改。 例如 ``` git pull origin ankur bugfix ``` 需要注意的是,工作站上通常至少有三个项目副本。一个副本是您自己的存储库,其中包含您自己的提交历史记录(已保存的历史记录,可以这么说)。第二个副本是您正在编辑和构建的工作副本(尚未提交到您的仓库)。第三个副本是远程存储库的本地“缓存”副本(可能是您克隆自己的原始副本)。您可以使用`git fetch`来了解自上次拉动以来远程repo / branch中所做的更改。这有助于在进行实际拉取之前进行检查,这可能会更改当前分支和工作副本中的文件(并且可能会丢失您的更改等)。 ``` git fetch git diff ...origin ```