git fetch和git merge之间的概念差异?为什么他们对我有同感?

时间:2013-07-19 13:45:42

标签: git

所以git fetch概念上意味着从远程分支中获取内容。现在git merge mybranch意味着将mybranch合并到当前分支中。我看不出两者有什么区别?我遗漏的那种鲜明的概念“在眼前”的差异是什么?

3 个答案:

答案 0 :(得分:8)

Git fetch不会修改您的工作副本

git fetch会:

  

从其他存储库下载对象和引用

它对您的工作副本或任何本地分支没有任何作用 - 它只下载新的提交并更新远程分支引用。

Git merge修改您的工作副本

git merge会:

  

一起加入两个或多个开发历史

即。合并到当前分支历史记录中。它仅在当前存储库中运行,不与远程存储库通信或修改远程存储库。

Git pull:fetch merge

通常,您需要从另一个存储库获取提交,然后合并(或重新绑定)它们到您的本地分支。

git pull是一个相关的命令。它会:

  

从另一个存储库或本地分支获取并合并

即:

  • 从远程存储库下载对象
  • 更新远程分支参考
  • 将远程分支合并到本地分支

在一个命令中。

答案 1 :(得分:2)

git fetch是在不合并的情况下获取更改,让您可以控制。 Git pull执行获取和合并。

获取提取不会改变您的工作数据。 git merge。您可以在使用git fetch

之前查看代码更改

答案 2 :(得分:2)

也许您对来自SVN等其他版本控制系统感到困惑?在SVN中,“从远程获取”(=“svn update”)获取更改“集成”它们。

在Git中,这是两个独立的操作:git fetch仅从远程进行更改,但“集成”它们。 git merge然后整合这些更改。