git的pull和fetch区别_git pull和git clone

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

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

有了以上的概念再来说说git fetch
git fetch:这将更新git remote 中所有的远程仓库所包含分支的最新commit-id, 将其记录到.git/FETCH_HEAD文件中
git fetch更新远程仓库的方式如下:

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分支上。

(2)git fetch origin
只是手动指定了要fetch的remote。在不指定分支时通常默认为master
(3)git fetch origin dev
指定远程remote和FETCH_HEAD,并且只拉取该分支的提交。

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将更为快捷。

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171979.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 人性的弱点

    1.与人相处的基本技巧永远不要尖锐地斥责别人斥责百害无一利,控制自己或则试着帮助他真诚地赞美他人激发他人的强烈需求2.如何让他人喜欢你真诚地关心他人微笑待人记住他人的名字善于倾听

    2021年12月30日
  • linux smartctl 命令,Linux下硬盘检测工具smartmontools(smartctl)使用方法

    linux smartctl 命令,Linux下硬盘检测工具smartmontools(smartctl)使用方法安装:yuminstallsmartmontoolshelp:#smartctl–helpsmartctlversion5.38[i686-redhat-linux-gnu]Copyright(C)2002-8BruceAllenHomepageishttp://smartmontools.sourceforge.net/Usage:smartctl[options…

  • 大数据处理的基本流程是什么?[通俗易懂]

    写在前面本文隶属于专栏《100个问题搞定大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!本专栏目录结构和文献引用请见100个问题搞定大数据理论体系解答大数据处理流程主要分为3步:1.数据抽取和集成2.数据分析3.数据解释补充1.数据抽取与集成由于大数据处理的数据来源类型丰富,利用多个数据库来接收来自客户端的数据,包括企业内部数据库、互联网数据和物联网数据,所以需要从数据中提取关系和实体,经过关联和聚合等操作,按照统一定义的格式对数据

  • weblogic EJB 学习

    weblogic EJB 学习EJB学习笔记1、ejb基础知识(1)无状态会话bean不保存客户机的会话状态优点:使用小量的实例即可满足大量的客户。每个实例都没有标识,相互之间是等价的。等?的无状态会话bean:多次和一次调用的结果和效应相同。在集群中可以负载均衡a机器失败,可以在b机器上重试非等?的无状态会话bean:如:计数器…

  • 决策树算法(C4.5)

    决策树算法(C4.5)

    2021年11月19日
  • python里数组如何定义_Python创建数组

    python里数组如何定义_Python创建数组1、Python的数组分三种类型:(1)list普通的链表,初始化后可以通过特定方法动态增加元素。定义方式:arr=[元素](2)Tuple固定的数组,一旦定义后,其元素个数是不能再改变的。定义方式:arr=(元素)(2)Dictionary词典类型,即是Hash数组。定义方式:arr={元素k:v}2、下面具体说明这些数组的使用方法和技巧:(1)list链表数组a、…

发表回复

您的电子邮箱地址不会被公开。

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