2

所以git fetch概念上意味着从远程分支获取一些东西。现在git merge mybranch意味着将 mybranch 合并到当前分支中。我看不出两者有什么区别?我缺少什么明显的概念上的“就在眼前”差异?

4

3 回答 3

8

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

git fetch将:

从另一个存储库下载对象和引用

它不会对您的工作副本或任何本地分支做任何事情——它只会下载新的提交并更新远程分支引用。

Git 合并修改你的工作副本

git merge将:

将两个或多个开发历史结合在一起

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

Git拉取:获取合并

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

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

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

IE:

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

在一个命令中。

于 2013-07-19T13:49:35.737 回答
2

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

get fetch 不会改变你的工作数据。git merge 可以。您可以在 git fetch 发生之前看到代码更改

于 2013-07-19T13:48:34.013 回答
2

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

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

于 2013-07-19T14:08:29.603 回答