详解git fetch与git pull的区别

详解git fetch与git pull的区别gitfetch 和 gitpull 都可以将远端仓库更新至本地那么他们之间有什么区别呢 想要弄清楚这个问题有有几个概念不得不提 FETCH HEAD 是一个版本链接 记录在本地的一个文件中 指向着目前已经从远程仓库取下来的分支的末端版本 commit id 在每次本地工作完成后 都会做一个 gitcommit 操作来保存当前工作到本地的 repo 此时会产生一个 commit id 这是一个能

git fetch和git pull都可以将远端仓库更新至本地那么他们之间有何区别?想要弄清楚这个问题有有几个概念不得不提。

FETCH_HEAD: 是一个版本链接,记录在本地的一个文件中,指向着目前已经从远程仓库取下来的分支的末端版本。
commit-id:在每次本地工作完成后,都会做一个git commit 操作来保存当前工作到本地的repo, 此时会产生一个commit-id,这是一个能唯一标识一个版本的序列号。 在使用git push后,这个序列号还会同步到远程仓库。

git fetch origin master:tmp //在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支 git diff tmp //来比较本地代码与刚刚从远程下载下来的代码的区别 git merge tmp //合并temp分支到本地的master分支 git branch -d temp //如果不想保留temp分支 可以用这步删除 

(1)如果直接使用git fetch,则步骤如下:

  • 创建并更新本 地远程分支。即创建并更新origin/xxx 分支,拉取代码到origin/xxx分支上。
  • 在FETCH_HEAD中设定当前分支-origin/当前分支对应,如直接到时候git merge就可以将origin/abc合并到abc分支上。

git pull : 首先,基于本地的FETCH_HEAD记录,比对本地的FETCH_HEAD记录与远程仓库的版本号,然后git fetch 获得当前指向的远程分支的后续版本的数据,然后再利用git merge将其与本地的当前分支合并。所以可以认为git pull是git fetch和git merge两个步骤的结合
git pull的用法如下:

git pull 
  <远程主机名> 
   <远程分支名>
     : 
    <本地分支名>
      //取回远程主机某个分支的更新,再与本地的指定分支合并。 
     
    
  

因此,git fetch是从远程获取最新版本到本地,但不会自动merge
而git pull则是会获取所有远程索引并合并到本地分支中来。效果相同时git pull将更为快捷。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176355.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午10:08
下一篇 2026年3月26日 下午10:08


相关推荐

  • Linux 添加开机启动项的三种方法

    Linux 添加开机启动项的三种方法

    2022年4月3日
    47
  • SpringCloud常见面试题(2020最新版)

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:ThinkWon thinkwon.blog.csdn.net/article/details/1043973…

    2021年6月26日
    98
  • 关于使用iframe嵌套页面的跳转方式

    关于使用iframe嵌套页面的跳转方式一、背景A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,在D中跳转页面的写法区别如下。二、JS跳转window.location.href、location.href本页面跳转,D页面跳转parent.location.href上一层页面跳转,C页面跳转top.location.href最外层页面跳转,A页面跳转三、链接或者formD页面中有for…

    2022年6月16日
    57
  • 浅谈回文串问题

    浅谈回文串问题回文串问题是字符串类型的题目中常见的一类 在绝大多数情况下 但凡涉及字符串问题都对 暴力算法 以及 dfs 等形式不太友好 常见的解决思路有动态规划 而除此之外 利用自动匹配机的性质 大牛们又发明了巧妙而高效的算法 本文在涉及 回文串类型问题 的解法之上 主要罗列一些常见的解决思路 最粗暴的解法 暴力法 O N 3 首先 可能大多数人都会想到利用回文串的性质 即 S reverse S

    2026年3月19日
    2
  • JVM – 彻底理解打破双亲委派机制

    文章目录Pre双亲委派何为打破双亲委派演示Pre双亲委派JVM-白话聊一聊JVM类加载和双亲委派机制源码解析JVM-自定义类加载器何为打破双亲委派举个例子有个类Artisan我们希望通过自定义加载器直接从某个路径下读取Artisan.class.而不是说通过自定义加载器委托给AppClassLoader——>ExtClassLoader—->BootClassLoader这么走一遍,都没有的话,才让自定义加载器去加载Artis

    2022年4月8日
    79
  • 控件anchor和dock属性_控件的常用属性

    控件anchor和dock属性_控件的常用属性在设计窗体时,这两个属性特别有用,如果用户认为改变窗口的大小并不容易,应确保窗口看起来显示的不是那么乱,并编写很多代码来实现这个效果,许多程序解决这个问题都是禁止给窗口重新设置大小这显然是解决问题的最简单的方法,但不是最好的方法,因此引入了Anchor和Dock属性。1、Anchor属性用于指定在用户重新设置窗口的大小时控件应该如何响应,可以指定如果控件重新设置了大小,就根据控件的边界去锁

    2025年10月29日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号