要讲清楚git fetch,git pull的区别必须要附加讲清楚git remote,git merge 、远程repo, branch 、 commit-id 以及 FETCH_HEAD。

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将其与本地的当前分支合并。

git pull不同步_Git fetch和git pull的区别?相关推荐

  1. git提取和拉取的区别_git fetch和git pull的区别

    [是什么]:平时开发经常遇到不清楚的问题就百度/google,目的是能快速使用并解决问题.这时我们没有花太多时间去深入理解,只求能快速解决手头问题. [为什么]但是如果要深入理解的话,发现有时候百度出 ...

  2. git服务器文件同步,使用gitolite搭建git服务器并实现文件的自动备份

    现在搭建git服务器是一件比较简单的事情,有很多现成的工具,个人感觉比较好的是使用GitLab搭建git服务器,搭建完成了只有在电脑的浏览器中输入对应的网址就能看到图形界面,图形界面和github很像 ...

  3. git项目比对_Git实战之Git对比SVN

    相信很多测试和开发的小伙伴都用过svn,那么svn作为入门级的版本管理工具应用的企业也是比较多的.那么我们先来介绍一下关于svn的一些特点吧,在给大家回顾一下.说的简单点就是svn需要一台svn服务器 ...

  4. git pull不同步_git回退版本,再返回最新分支git pull失败的解决经验

    本文转载自[微信公众号:羽林君,ID:Conscience_Remains] 总述 一篇解决gti分支切换问题的文章,大家应该都有过这种情况,就是git最新的代码进行编译的时候,发现最新代码有bug, ...

  5. git pull 无响应_git clone 和 git pull 代码无响应

    记录一下今天 git 拉代码遇到的一些异常情况: 无论是项目目录下 git pull 还是直接 git clone 都不能正常拉代码: 异常情况1 ssh: connect to host gitee ...

  6. git rebase 命令 常用_git命令之 git rebase 常用

    git rebase 命令的功能很强大, 在<git 权威指南>一书里,改变提交(commit)的顺序,书中教了一种很复杂的方法,运用了git reset ... git cherry-p ...

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

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

  8. fetch git pull 切换_git fetch git pull

    解析.git文件夹 进入正题之前,我们先来看看.git文件夹 1.config配置文件 [core] repositoryformatversion = 0 filemode = true bare ...

  9. git fetch 与 git pull

    文章目录 git flow 流程 git fetch 与 git pull 区别 git fetch 工作流程 git flow 流程 先来看一张图吧: 大致流程是这样的:我们在本地(工作区)编写好代 ...

最新文章

  1. java 发送qq消息_php发送qq消息
  2. java编写代码时易出错_JAVA中易出错的小问题(一)
  3. Ant步步为营(4)ant启动tomcat
  4. ncurses键盘管理:cbreak,keypad,getch(),KEY_F(),clrtoeol()
  5. Java定时器的cron设置详解Quartz
  6. GitHub标星7700:Python从新手到大师,只要100天
  7. 2012年最佳免费网站和移动应用 PSD 界面素材揭晓
  8. 陈绪:7月24日阿里云上海峰会出品人
  9. linux 内核头文件、内核库文件
  10. 根据城市名获得城市中心的经纬度
  11. JMeter的使用,同时发起多次请求的压测,POST请求使用scv参数化文件
  12. 信息技术c语言试题,全国信息技术水平考试C语言考试试卷.doc
  13. leetcode69 x的平方根
  14. 【android学习笔记:Webview与Js交互】网页生成的excel/pdf等文件通过webview下载保存
  15. TensorFlow Serving架构分析
  16. 物体识别基本原理及其Python实现
  17. 京东淘宝天猫API销量接口
  18. B2B2C模式的三种核心逻辑
  19. JavaScript中的join() 方法
  20. 苹果 谷歌 微软 三国混战 附地图详解

热门文章

  1. 音频算法之小黄人变声 附完整C代码
  2. 抖音弹幕,点赞,关注 protocol 分析
  3. VR太阳模拟真实太阳光照:点击命令,工作区创建——daiding
  4. jQuery选择器的基本使用
  5. 2010上海国际数字信息化教育技术与装备展览会
  6. xp系统 与ipad 连接服务器,ipad中的wordexcl等文件可以在XP操..._网络编辑_帮考网
  7. Kafka—消息队列
  8. 网络安全从入门到精通(第五章-2)工具稍微介绍使用
  9. 论文阅读:A Primer on Neural Network Models for Natural Language Processing(1)
  10. 读书笔记:程序员的思维修炼—开发认知潜能的九堂课