两者之间有什么区别?git pullgit fetch?


当前回答

之间唯一的差别git pullgit fetch是:

git pull从远程分支拉出并合并。

git fetch仅从远程分支获取取取, 但它不合并

i. e. git pull = git 获取 + git 合并...

其他回答

更简短

git fetch获取更新但不将其合并 。

git pull是否为 a 的git fetch兜帽下,然后一个merge.

简简

git fetch类似pull但它不合并。 也就是说, 它会获取远程更新( NAME OF TRANSLATORS) 。refsobjects)但您的居住地保持不变(即:origin/master得到更新,但master保留原样) 。 。

git pull从一个远程的并瞬间合并中拉下来。

更多

git clone克隆回购 。

git rebase将不属于上游分支的当前分支保存到临时区域。 您的分支现在和您开始更改前一样。 所以,git pull -rebase将拉下远程修改, 倒转您的本地分支, 重放您的变化 在您当前分支的顶部 一个一个一个地重放 直到您更新。

还有git branch -a将显示你们所有分支—— 本地和远程分支—— 究竟发生了什么。

这个博客文章很有用:

Git 拉拉、 Git 抓取和 Git 克隆( 和 Git 重新基底) - Mike Pearce 的区别

和涵盖范围git pull, git fetch, git clonegit rebase.

最新更新

我想我应该更新这个 来显示你是如何实际使用这个的。

  1. 从远程更新您的本地副本( 但不要合并) :

     git fetch 
    
  2. 下载更新后,

     git diff master origin/master 
    
  3. 如果你对最新消息满意的话, 合并一下:

     git pull
    

注:

第2步:更多关于本地和远程之间差异的信息,见:如何比较本地 Git 分支与其远程分支的比较

第三步:也许更准确(例如,在快速变化的回购上)git rebase origin此处。 见@ Justin Ohms 评论在另一个答案中。

另见:http://longair.net/blog/2009/04/16/git-fetch-and-merge/

注:我还提到mergea 期间pull然而,您仍然可以配置pull使用rebase取而代之。

Git允许在较新的承诺之后适用按时间顺序排列的旧承诺。 因此,存放库之间转移承诺的行为分为两步:

  1. 正在从远程分支复制新承诺, 复制本地副本中的此远程分支 。

    (收回业务)master@remote >> remote/origin/master@local

  2. 整合对地方分支机构的新承诺

    (内购外业务)remote/origin/master@local >> master@local

第二步有两种方法,你可以:

  1. 在上一个共同祖先之后,将本地分支叉到叉口,并添加与本地仓库独特的承诺平行的新承诺,通过合并承诺最终完成,关闭叉口。
  2. 在上一个共同祖先后插入新承诺,并重新应用本地仓库独有的承诺。

git术语术语,第1步是git fetch,第2步是git mergegit rebase

git pullgit fetchgit merge

简单解释:

git fetch

获取元数据。 如果您想要检查最近创建的分支, 您可能需要在退出前进行获取 。

git pull

从远程获取元元数据,并将文件从远程移动并合并到分支

git fetch将检索远程分支,以便您能够git diffgit merge它们与当前分支一起存在。git pull将运行当前分支所跟踪的远程条格获取,然后合并结果。您可以使用git fetch查看是否对远程分支有任何更新,而不必将其与您的本地分支合并。

人们必须牢记 git 的性质。 您有远程和本地分支( 不一定相同 ) 。 与其他源控制系统相比, 这可能会有点令人困惑 。

通常当您检出远程时,会创建本地副本,跟踪远程。

gitreach 将会与远程分支合作并更新您的信息 。

实际上,如果其他SWES同一个部门工作,就属于这种情况,而小型项目----一个部门----一个项目设想方案的情况很少。

您对本地分支的工作仍然完好无损 。 为了将更改带回您的本地分支, 您必须合并/ 重订远程分支的更改 。

git拉动正好就是这两个步骤(即 -- -- rebase to rebase rebase 而不是合并)

如果您的本地历史和远程历史有冲突, 您将被迫在一小块按键发布您的更改时进行合并 。

因此,这真正取决于你的工作环境的性质和使用经验。