大家都知道,git中从远程的分支获取最新的版本到本地有2个命令,git pull和git fetch。但是,这两个命令究竟有什么区别?使用时候该怎么选择呢?很多人不是很清楚,我自己也不是很清楚。今天就特地从网上找了些相关资料,进行了总结,便于以后查阅。

1、git fetch

从远程拉取最新的版本到本地仓库,但是不会自动merge。fetch之后,如果没有后续的merge操作,那么你看到的代码仍然是你自己修改的代码,而不是最新的服务器端的代码。所以,严格来说,如果要把服务器端的代码真正合并到你的分支上,你需要执行以下几个步骤:

git fetch origin master
git log -p master..origin/master
git merge origin/master

以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上。
然后查看日志,比较本地的master分支和origin/master分支的差别。
最后进行合并。

上述过程其实可以用以下更清晰的方式来进行:

git fetch origin master:tmp
git diff tmp
git merge tmp

从远程获取最新的版本到本地的tmp分支上。
之后再进行比较合并。

2、git pull

相当于是从远程获取最新版本并立即merge到本地的版本上。

git pull origin master

上述命令其实相当于git fetch 和 git merge,两个操作一步到位。

注意:在实际使用中,git fetch更安全一些。
因为在merge前,我们可以查看更新情况,然后再决定是否合并。

玩转GIT系列之【git pull和git fetch的区别】相关推荐

  1. 玩转GIT系列之【如何配置GIT的用户名/密码/密钥】

    安装完Git之后,必须对其进行设置,否则将无法联网工作. 1.设置用户名和邮箱 首先必须设置git的用户名和邮箱地址,否则的话,你往服务器git push时会失败. $ git config --gl ...

  2. Git系列(一)、Git基础教程【建议收藏】

    Git基础教程 一.Git简介 1.1.什么是Git? 1.2.Git的特点 1.3.集中式与分布式的区别? 1.4.什么是版本控制系统? 1.5.Git下载安装 1.5.Git配置 1.6.Git ...

  3. Git系列(二)、Git连接远程仓库(Gitee码云)

    Git连接远程仓库 一.什么是Git远程仓库? 二.创建远程仓库 第一步:新建仓库 第二步:创建SSH公钥 第三步:查看公钥 第四步:登录码云Gitee,打开当前仓库设置,添加SSH公钥 第五步:从本 ...

  4. 玩转GIT系列之【如何放弃本地/服务器端所做的修改】

    今天遇到一个问题,就是在git工程下修改了一些代码,结果发现搞错了,需要撤销掉所有改动的内容,还原到之前的初始版本,换言之就是放弃自己在本地所做的修改.该怎么做呢?要分以下几种情况来区别对待: 一.尚 ...

  5. 玩转GIT系列之【git切换到某个tag之后提示“detached HEAD】

    git clone 整个仓库后使用 git checkout tag_name 就可以取得该 tag 对应的代码了. 但是,这时候 git 可能会提示你当前处于一个"detached HEA ...

  6. Git 系列(二):初步了解 Git

    在这个系列的介绍篇中,我们学习到了谁应该使用 Git,以及 Git 是用来做什么的.今天,我们将学习如何克隆公共 Git 仓库,以及如何提取出独立的文件而不用克隆整个仓库. 由于 Git 如此流行,因 ...

  7. Git系列:git push -u origin master命令理解

    Git系列:git push -u origin master命令理解 git push -u origin master git push -u origin master 相当于 git bran ...

  8. GIT科普系列5:index in git

    背景: git的使用其实没有想象中的那么复杂,平日里真正使用的指令都是极少数.最简单格式的.之所以使用过程中感觉操作复杂.冲突不断,究其根源是对git的设计理念缺乏了解,没有搞清楚git实现版本控制的 ...

  9. Git系列:常用操作一指禅

    Git操作一指禅 远程建仓,本地拉取代码 代码提交 版本回退 其他操作 扩展参考 Git系列博客: Git系列:GitHub建仓及远端同步步骤总结,link Git系列:入门必备指令详解,link G ...

最新文章

  1. h265player开发
  2. 你见过最差的算法工程师都有哪些表现?
  3. python中do的用法,如何使用docplex(python)对优化问题中的约束进行建模?
  4. Win7/Win8.1升级Win10后屏幕一直闪烁怎么办?
  5. JavaScript 需要清楚的10件事
  6. 陌陌宣布由总裁兼COO王力担任公司新任CEO
  7. TCP的三次握手和四次挥手理解及面试题
  8. live2d_Live2D | CubismSdkForUnity4r.1简介(上)
  9. 编解码格式 -- AAC
  10. 互联网下一个风口 国务院印发《促进大数据发展行动纲要》
  11. IT从业者创业公司生存指南:创业后记 ---- 百感交集的过来人
  12. QT编译错误:cannot find file: *.pro
  13. mysql如果忘记密码怎么办
  14. 荣誉加持,驭势科技近期斩获奖项回顾
  15. linux编译谷歌浏览器方法,构建Linux版本的谷歌Chrome浏览器
  16. 「塔望咨询」×「皇品食品」2022上半年营销集锦
  17. 3.1.5 操作系统之动态分区分配的四种算法(首次适应算法、最佳适应算法、最坏适应算法、临近适应算法)
  18. Spring Boot Admin2 @EnableAdminServer的加载
  19. java utf8 简繁转换 类库_java简繁转换(区分港台)
  20. 《Spring实战》读书笔记2

热门文章

  1. 把 JavaScript 放置到何处
  2. R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
  3. JAVA-基础(查找文件夹内文件)
  4. CentOS 7配置静态IP地址 解决了IP失效问题
  5. HTML常见标签总结
  6. Android 自定义dialog
  7. SSAS系列——【08】多维数据(程序展现Cube)
  8. 数目nullRQNOJ-302-统计单词个数--区域dp
  9. 10步骤优化SQL Server 数据库性能
  10. 虚拟机上php5.6安装教程,手把手安装linux虚拟机教程