如果它没有合并,git fetch会做什么?

时间:2015-10-05 20:28:28

标签: git

我试图了解何时使用get fetch而不是git pull。我之前已经读过(例如herehere)git pull和get fetch之间的区别在于pull执行fetch后跟合并。这一切都很好,除了...等待 - 如果不合并,fetch实际上会做什么?如果您没有合并到本地存储库,它甚至意味着从远程存储库获取更新?

例如,假设我的本地存储库是三个提交,一个提交在远程存储库之前。如果我执行git pull,我将在本地存储库中看到这三个提交,可能是“<<<<<<<<<< HEAD“在某些文件中,如果存在合并冲突。 git日志会有一个额外的提交拉。

如果我进行提取,这三个提交不会出现在我的本地存储库中吗?如果他们这样做,它与拉力有何不同?它是否与拉动不同地处理冲突还是存在其他差异?

1 个答案:

答案 0 :(得分:1)

您的git存储库分别存储有关本地和远程分支的数据。当您git pushgit pull时,git通常会将您的本地分支(例如develop)与远程分支(例如origin/develop)相关联。如果您执行git fetch,它只会更新远程分支的本地副本。你可以通过git checkout origin/develop来看到这一点。如果您想随后更新本地分支,请运行git merge origin/develop

TL; DR; git pull ~= git fetch + git merge