文档章节

Git中pull对比fetch && merge

秋风醉了
 秋风醉了
发布于 2015/08/24 13:54
字数 665
阅读 2512
收藏 5
点赞 3
评论 0

Git中pull对比fetch && merge

使用git fetch和git pull都可以更新远程仓库的代码到本地,但是它们之间还是有区别。

git fetch

git fetch origin master
git log -p master..origin/master
git merge origin/master
  1. 从远程的origin仓库的master主分支更新最新的版本到origin/master分支上

  2. 比较本地的master分支和origin/master分支的差别

  3. 合并内容到本地master分支

 

git pull

相当于git fetch 和 git merge,即更新远程仓库的代码到本地仓库,然后将内容合并到当前分支。

所以,简单的说git pull相当于git fetch后再做一个git merge。那么它们具体的区别如何分析呢,这就需要我们再认识下git了,先看看下面这张图:

我们知道,git其实有好几个区,工作区(workspace)、暂存区(index)、本地仓库(local repository),当然还有远程仓库(remote repository)。远程仓库为我们保存一份代码拷贝,如github,而工作区、暂存区和本地仓库都在本地,这就是为什么没有网络我们也照样使用git提交(commit)代码更新,因为提交仅是提交到本地仓库,待有网络之后可以再推送(push)到远程仓库。

正如上图所示,git fetch是将远程仓库的更新获取到本地仓库,不影响其他区域。而git pull则是一次性将远程仓库的代码更新到工作区(同时也会更新本地仓库)。

通常来说,git fetch和merge与git pull的区别已经很明显了,但是如果想再了解下git是如何操作的,则需要我们了解下分支这个git的强大特性(分支的概念确实太牛逼了,我不确定我的理解是否是正确的)。

 

分支

分支(branches)是用来标记特定的代码提交,每一个分支通过SHA1sum值来标识,所以对分支进行的操作是轻量级的——你改变的仅仅是SHA1sum值。所以为什么git提倡大家多使用分支,因为它即轻量级又灵活。简单的说,分支有两种:

本地分支(local branches)” ,当你输入“git branch”时显示的:

$ git branch
  * master

远程分支(remote branches)” ,当你输入“git branch -r”是显示的:

$ git branch -r
  origin/master

如果你对分支在本地是如何存储感兴趣的话,看看项目中的下面文件,文件里面存的就是一个SHA1sum值:

.git/refs/head/[本地分支]

.git/refs/remotes/[正在跟踪的分支]

=======END=======

本文转载自:

共有 人打赏支持
秋风醉了
粉丝 228
博文 577
码字总数 407134
作品 0
朝阳
程序员
详细了解git fetch与git pull的区别

git fetch和git pull都可以将远端仓库更新至本地那么他们之间有何区别?想要弄清楚这个问题有有几个概念不得不提。 FETCH_HEAD: 是一个版本链接,记录在本地的一个文件中,指向着目前已经从远...

问题终结者
02/11
0
0
【转】GIT常见问题和操作及feth和pull的区别

以下内容来自:http://blog.microsuncn.com/?p=1978 恢复丢失的版本 丢失版本最常见的问题就是 比如使用了 git reset –hard HEAD^ 之类的操作,结果发现丢弃的版本还想恢复回来,但是已经没...

王小明123
2012/07/23
0
0
git 拉取和获取 pull 和 fetch 区别

使用Git 直接提交的话 直接 push 获取最新版本 有两种 拉取 和 获取 pull 和 fetch git pull 从远程拉取最新版本 到本地 自动合并 merge git pull origin master git fetch 从远程获取最新版...

科技小毛
2017/11/15
0
0
git fetch, merge, pull, push需要注意的地方

在Git操作中,我们经常会用到fetch, merge, pull和push等命令,以下是一些我们需要注意的地方。 给大家准备了参考资料: 1. Whatʼs a Fast Forward Merge?:https://sandofsky.com/images/...

jims
2016/08/30
19
0
git pull 与git fetch的区别

从百度上看到很多关于git fetch 和 git pull 的不同 实践一下: 从github上新建一个项目try,copy到本地。 在github网站里修改readme.txt文件,新增加一句【alter readme】 在本地仓库的rea...

铭尘沐风
2015/08/03
0
0
Eclipse上GIT插件EGIT使用手册

一_安装EGIT插件 http://download.eclipse.org/egit/updates/ 或者使用Eclipse Marketplace,搜索EGit 二_使用EGIT前的配置 配置个人信息,最重要的是user.name和user.email l Preference...

moz1q1
2014/08/14
0
0
Eclipse上GIT插件EGIT使用手册

一_安装EGIT插件 http://download.eclipse.org/egit/updates/ 或者使用Eclipse Marketplace,搜索EGit 二_使用EGIT前的配置 配置个人信息,最重要的是user.name和user.email l Preferences ...

吃鱼的虾米
2014/01/21
0
0
Git在eclipse中的配置详细记录

一_安装EGIT插件 http://download.eclipse.org/egit/updates/ 或者使用Eclipse Marketplace,搜索EGit 还有一个要说明的是如果使用:http://download.eclipse.org/egit/updates.来安装,则要保...

北方攻城师
2014/06/25
0
0
真正理解 git fetch, git pull 以及 FETCH_HEAD【转】

转自:http://www.cnblogs.com/ToDoToTry/p/4095626.html 真正理解 git fetch, git pull 要讲清楚git fetch,git pull,必须要附加讲清楚git remote,git merge 、远程repo, branch 、 comm......

桃子红了呐
2017/11/08
0
0
图解 Git 命令行(二)

没看过第一篇的童鞋可以先回头看看第一篇。 图解Git 命令行(一) 先放张图,图图写了一份代码,上传到了远程仓库,这时候妹子可以通过 clone 拿到所有代码,也可以进行图图能进行的所有操作,...

tutu__oo
2017/11/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

公众号推荐

阿里技术 书籍:《不止代码》

courtzjl
6分钟前
0
0
关于改进工作效率

1.给不同的业务线建立需求群,所有的数据需求都在群里面提。 2.对于特别难搞定的事情,到对应的技术哪去做,有问题随时沟通。 3.定期给工作总结形成方法论。 4.学习新的技术,尝试用新的方法...

Avner
13分钟前
0
0
关于thinkphp 框架开启路径重写,无法获取Authorization Header

今天遇到在thinkphp框架中获取不到header头里边的 Authorization ,后来在.htaccess里面加多一项解决,记录下: <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews Rewrite......

殘留回憶
17分钟前
0
0
centos 使用yum安装nginx后如何添加模块 10

centos 使用yum安装nginx后如何添加模块 10 centos6.2版本,使用yum来安装了nginx,但是最近需要重新添加模块,所以就傻了,询问下有人知道怎么重新添加模块吗? PS:俺是新手,需要高手救助...

linjin200
20分钟前
0
0
dubbo 资料

dubbo资料网站: https://www.cnblogs.com/a8457013/p/7818925.html

zaolonglei
20分钟前
0
0
大型网站,你是如何架构的?

大型网站,你是如何架构的?

微小宝
22分钟前
0
0
javaScript选框的全选与取消

<div> <input type="button" value="全选" onclick="quan()"> <input type="button" value="取消" onclick="cancel()"> <input type="button" value="反选" onclick="reverse()"> <table> <t......

南桥北木
24分钟前
0
0
七牛云宫静:基于容器和大数据平台的持续交付平台

7 月 6 日上午,在 ArchSummit 2018 深圳站 | 全球架构师峰会上,七牛云工程效率部技术专家宫静分享了《基于容器和大数据平台的持续交付平台》为题的演讲。本文是对演讲内容的整理。
 
 本...

七牛云
31分钟前
1
0
Linux系统下如何查看某个命令的安装位置

1.which + 命令 会出现这个命令的路径,如果不是软链接的话,那么这就是此软件的安装路径;如果是软连接的话,那么进入下一步 2.进入上面的路径下,输入:ls -al 要查照的命令 会出现它的真是...

xiaomin0322
31分钟前
1
0
微信小程序富文本图片处理二

一、将富文本中图片的相对链接地址修改成绝对链接地址 //替换图片链接 data.content = data.content.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function (match......

tianma3798
35分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部