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
类似于perforceGet latest revision
,git push
将执行perforceSubmit
建议-添加一点说明pull=fetch+merge
。它可能超出了确切问题的范围,但如果OP对获取
/合并
感到困惑,那么拉
上可能也会有一些问题……您的评论它没有与远程存储库通信或修改远程存储库,这让我意识到为什么我会感到困惑。我在想,git merge
会影响遥控器。看起来没有<代码>git push就是这样做的。谢谢