理解git fetch, git pull 以及 FETCH_HEAD的含义
理解 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的含义相关推荐
- 真正理解 git fetch, git pull 以及 FETCH_HEAD
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 真正理解 git fetch, git pull 要讲清楚git fetch,git pull,必须 ...
- git fetch - git merge - git pull 指令
git fetch - git merge - git pull 指令 Incorporates changes from a remote repository into the current b ...
- 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 ...
- 理解Git的设计思想,详解git文件夹,以及详解add、commit、push,fetch、pull、merge指令
在项目目录执行git init,此目录将纳入git管理,git将会自动生成.git文件夹,用以记录git配置(.git/config)和版本信息(commit-id)和文件集合.下面是.git文件夹的 ...
- #39;git pull#39;和#39;git fetch#39;有什么区别?
主持人注意:鉴于此问题已经发布了67个答案 (其中一些已删除),请在发布另一个问题之前考虑您是否正在贡献新内容 . git pull和git fetch什么区别? #1楼 我花了一点时间来了解有什么区 ...
- Git fetch pull 详解
1.简单概括 先用一张图来理一下git fetch和git pull的概念: 可以简单的概括为: git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中. 而g ...
- git init 会不会清空_Git命令:git pull amp; git fetch
前言 本地仓库需要获取远程仓库中的更新,需要用到Git命令pull或fetch,这两个命令在实际使用时有何区别,下面详细介绍下. 使用工具 Git v2.29.2.2 TortoiseGit v2.4 ...
- git fetch和git pull之间的区别--转载
原文地址:http://blog.csdn.net/a19881029/article/details/42245955 git fetch和git pull都可以用来更新本地库,它们之间有什么区别呢 ...
- git fetch pull
基础 理解fetch和pull的前提是理解remote仓库和local仓库以及origin/master remote仓库保存一个 origin/master local仓库保存一个 origin/m ...
最新文章
- PPP协议详细图解实验
- shellcode学习总结
- 评分卡上线后如何进行评分卡的监测
- ValueError: slice index xxxx of dimension 0 out of bounds,详细分析。
- 大数据学习系列----基于Spark Streaming流式计算
- 四川中职计算机专业考的学校,四川中职学校哪家专业
- BFC的布局规则以及触发条件
- 正在运行的程序和数据都是保存在计算机的,正在运行的程序和数据是暂在计算机的硬盘中吗?...
- nc 发布元数据_智联科发布新一代连续式NC膜粘膜划膜一体机
- python中对象的定义_全面了解python中的类,对象,方法,属性
- 三菱PLC进行连续数据采集、时序和故障追踪的方法
- PPT不能编辑,如何取消PPT的只读模式?
- linux基础知识复习学习笔记
- [ 大道至简系列 ] 三分钟理解-1NF,2NF,3NF
- STARK Low Degree Testing——FRI
- Java实现aes加解密
- Android 使用shape实现虚线或者虚线框
- linux服务器jpegoptim和optipng批量无损压缩图片
- div中的span水平居中
- 企业建网站需要注意什么SEO问题
热门文章
- centerOS安装涛思
- 在jsp页面中使用My97DatePicker日期控件
- Python 通用爬虫 和讯博客 scrapy
- 电力系统的延时潮流 (CPF)的计算【 IEEE-14节点】(Matlab代码实现)
- 字符串哈希--聪聪的加法等式
- 关于aux、com1、com2、prn、con、nul命名
- 基于IntelliJ Idea的Scala开发demo一Spark开发demo
- 【Adobe】Premiere pro 2023问题:文件导入器检测到xxxxx的文件结构不一致。已禁止读取和写入此文件的元数据(XMP)
- 供应化学试剂Boc-NH-PEG-NH2,Boc-NH-PEG-amine,叔丁氧羰基PEG氨基
- C#结合天敏VC4000采集卡视频监控