Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git fetch和git merge在概念上的区别?为什么他们对我有同样的感觉?_Git - Fatal编程技术网

git fetch和git merge在概念上的区别?为什么他们对我有同样的感觉?

git fetch和git merge在概念上的区别?为什么他们对我有同样的感觉?,git,Git,因此,git fetch在概念上意味着从远程分支获取一些东西。现在,git merge mybranch意味着将mybranch合并到当前分支。我看不出两者有什么区别?我所缺少的“眼前”这一概念上的鲜明区别是什么?git fetch是在不合并的情况下获取更改,从而为您提供控制权。Git pull执行获取和合并 get fetch不会更改您的工作数据。git合并可以。您可以在git fetch发生代码更改之前看到这些更改git fetch不会修改您的工作副本 将: 从另一个存储库下载对象和引用 它

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

git fetch是在不合并的情况下获取更改,从而为您提供控制权。Git pull执行获取和合并

get fetch不会更改您的工作数据。git合并可以。您可以在git fetch发生代码更改之前看到这些更改

git fetch不会修改您的工作副本 将:

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

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

Git merge修改您的工作副本 将:

将两个或多个开发历史记录连接在一起

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

Git pull:获取和合并 通常,您需要从另一个存储库获取提交,然后将它们合并(或重新设置基础)到本地分支中

是一个相关的命令。它将:

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

即:

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

在一个命令中。

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


在Git中,这是两个独立的操作:
Git fetch
只从远程获取更改,而不将它们“集成”
git merge
然后集成这些更改。

您可以扩展这个问题来解释为什么您感到困惑吗?这两个命令做两件完全不同的事情,您在问题中概述了它们的作用。如果没有澄清,很难知道如何用你还没有用的方式来回答这个问题。实际上我很困惑&把
git合并
误认为是
git推送
。我当时的想法是将本地更改合并到远程,当然这是错误的
gitpush
可以做到这一点,而不是
gitmerge
git fetch+merge
类似于perforce
Get latest revision
git push
将执行perforce
Submit
建议-添加一点说明
pull=fetch+merge
。它可能超出了确切问题的范围,但如果OP对
获取
/
合并
感到困惑,那么
上可能也会有一些问题……您的评论它没有与远程存储库通信或修改远程存储库,这让我意识到为什么我会感到困惑。我在想,
git merge
会影响遥控器。看起来没有<代码>git push就是这样做的。谢谢