理解 git fetch, git pull

1. 【git remote】首先, git是一个分布式的结构,这意味着本地和远程是一个相对的名称。

本地的repo仓库要与远程的repo配合完成版本对应必须要有 git remote子命令,通过git remote add来添加当前本地长度的远程repo, 有了这个动作本地的repo就知道了当遇到git push 的时候应该往哪里提交代码。

2. 【git branch】其次,git天生就是为了多版本分支管理而创造的,因此分支一说,不得不提, 分支就相当于是为了单独记录软件的某一个发布版本而存在的,既然git是分布式的,便有了本地分支和远程分支一说,git branch 可以查看本地分支, git branch -r  可以用来查看远程分支。 本地分支和远程分支在git push 的时候可以随意指定,交错对应,只要不出现版本从图即可。

3. 【git merge】再者,git的分布式结构也非常适合多人合作开发不同的功能模块,此时如果每个人都在其各自的分支上开发一个相对独立的模块的话,在每次release制作时都需先将各成员的模块做一个合并操作,用于合并各成员的工作成果,完成集成。 此时需要的就是git merge.

4.【git push 和 commit-id】在每次本地工作完成后,都会做一个git commit 操作来保存当前工作到本地的repo, 此时会产生一个commit-id,这是一个能唯一标识一个版本的序列号。 在使用git push后,这个序列号还会同步到远程repo。

在理解了以上git要素之后,分析git fetch 和 git pull 就不再困难了。

首先,git fetch 有四种基本用法

1. git fetch            →→ 这将更新git remote 中所有的远程repo 所包含分支的最新commit-id, 将其记录到.git/FETCH_HEAD文件中

2. git fetch remote_repo         →→ 这将更新名称为remote_repo 的远程repo上的所有branch的最新commit-id,将其记录。

3. git fetch remote_repo remote_branch_name        →→ 这将这将更新名称为remote_repo 的远程repo上的分支: remote_branch_name

4. git fetch remote_repo remote_branch_name:local_branch_name       →→ 这将这将更新名称为remote_repo 的远程repo上的分支: remote_branch_name ,并在本地创建local_branch_name 本地分支保存远端分支的所有数据。

FETCH_HEAD: 是一个版本链接,记录在本地的一个文件中,指向着目前已经从远程仓库取下来的分支的末端版本。

git pull 的运行过程:

git pull : 首先,基于本地的FETCH_HEAD记录,比对本地的FETCH_HEAD记录与远程仓库的版本号,然后git fetch 获得当前指向的远程分支的后续版本的数据,然后再利用git merge将其与本地的当前分支合并。

参考链接 :

1.https://ruby-china.org/topics/4768

2.http://stackoverflow.com/questions/9237348/what-does-fetch-head-in-git-mean

理解git fetch, git pull 以及 FETCH_HEAD的含义相关推荐

  1. 真正理解 git fetch, git pull 以及 FETCH_HEAD

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 真正理解 git fetch, git pull 要讲清楚git fetch,git pull,必须 ...

  2. git fetch - git merge - git pull 指令

    git fetch - git merge - git pull 指令 Incorporates changes from a remote repository into the current b ...

  3. Git Fetch vs Pull:Git Fetch和Git Pull命令之间有什么区别?

    Git pull and fetch are two commands that are regularly used by Git users. Let's see the difference b ...

  4. 理解Git的设计思想,详解git文件夹,以及详解add、commit、push,fetch、pull、merge指令

    在项目目录执行git init,此目录将纳入git管理,git将会自动生成.git文件夹,用以记录git配置(.git/config)和版本信息(commit-id)和文件集合.下面是.git文件夹的 ...

  5. #39;git pull#39;和#39;git fetch#39;有什么区别?

    主持人注意:鉴于此问题已经发布了67个答案 (其中一些已删除),请在发布另一个问题之前考虑您是否正在贡献新内容 . git pull和git fetch什么区别? #1楼 我花了一点时间来了解有什么区 ...

  6. Git fetch pull 详解

    1.简单概括 先用一张图来理一下git fetch和git pull的概念: 可以简单的概括为: git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中. 而g ...

  7. git init 会不会清空_Git命令:git pull amp; git fetch

    前言 本地仓库需要获取远程仓库中的更新,需要用到Git命令pull或fetch,这两个命令在实际使用时有何区别,下面详细介绍下. 使用工具 Git v2.29.2.2 TortoiseGit v2.4 ...

  8. git fetch和git pull之间的区别--转载

    原文地址:http://blog.csdn.net/a19881029/article/details/42245955 git fetch和git pull都可以用来更新本地库,它们之间有什么区别呢 ...

  9. git fetch pull

    基础 理解fetch和pull的前提是理解remote仓库和local仓库以及origin/master remote仓库保存一个 origin/master local仓库保存一个 origin/m ...

最新文章

  1. PPP协议详细图解实验
  2. shellcode学习总结
  3. 评分卡上线后如何进行评分卡的监测
  4. ValueError: slice index xxxx of dimension 0 out of bounds,详细分析。
  5. 大数据学习系列----基于Spark Streaming流式计算
  6. 四川中职计算机专业考的学校,四川中职学校哪家专业
  7. BFC的布局规则以及触发条件
  8. 正在运行的程序和数据都是保存在计算机的,正在运行的程序和数据是暂在计算机的硬盘中吗?...
  9. nc 发布元数据_智联科发布新一代连续式NC膜粘膜划膜一体机
  10. python中对象的定义_全面了解python中的类,对象,方法,属性
  11. 三菱PLC进行连续数据采集、时序和故障追踪的方法
  12. PPT不能编辑,如何取消PPT的只读模式?
  13. linux基础知识复习学习笔记
  14. [ 大道至简系列 ] 三分钟理解-1NF,2NF,3NF
  15. STARK Low Degree Testing——FRI
  16. Java实现aes加解密
  17. Android 使用shape实现虚线或者虚线框
  18. linux服务器jpegoptim和optipng批量无损压缩图片
  19. div中的span水平居中
  20. 企业建网站需要注意什么SEO问题

热门文章

  1. centerOS安装涛思
  2. 在jsp页面中使用My97DatePicker日期控件
  3. Python 通用爬虫 和讯博客 scrapy
  4. 电力系统的延时潮流 (CPF)的计算【 IEEE-14节点】(Matlab代码实现)
  5. 字符串哈希--聪聪的加法等式
  6. 关于aux、com1、com2、prn、con、nul命名
  7. 基于IntelliJ Idea的Scala开发demo一Spark开发demo
  8. 【Adobe】Premiere pro 2023问题:文件导入器检测到xxxxx的文件结构不一致。已禁止读取和写入此文件的元数据(XMP)
  9. 供应化学试剂Boc-NH-PEG-NH2,Boc-NH-PEG-amine,叔丁氧羰基PEG氨基
  10. C#结合天敏VC4000采集卡视频监控