我试图了解何时使用get fetch而不是git pull。我之前已经读过(例如here和here)git pull和get fetch之间的区别在于pull执行fetch后跟合并。这一切都很好,除了...等待 - 如果不合并,fetch实际上会做什么?如果您没有合并到本地存储库,它甚至意味着从远程存储库获取更新?
例如,假设我的本地存储库是三个提交,一个提交在远程存储库之前。如果我执行git pull,我将在本地存储库中看到这三个提交,可能是“<<<<<<<<<< HEAD“在某些文件中,如果存在合并冲突。 git日志会有一个额外的提交拉。
如果我进行提取,这三个提交不会出现在我的本地存储库中吗?如果他们这样做,它与拉力有何不同?它是否与拉动不同地处理冲突还是存在其他差异?
答案 0 :(得分:1)
您的git存储库分别存储有关本地和远程分支的数据。当您git push
或git pull
时,git通常会将您的本地分支(例如develop
)与远程分支(例如origin/develop
)相关联。如果您执行git fetch
,它只会更新远程分支的本地副本。你可以通过git checkout origin/develop
来看到这一点。如果您想随后更新本地分支,请运行git merge origin/develop
。
TL; DR; git pull ~= git fetch + git merge