博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git pull fetch 更新本地文件区别
阅读量:3636 次
发布时间:2019-05-21

本文共 1235 字,大约阅读时间需要 4 分钟。

http://my.oschina.net/xinxingegeya/blog/496278

Git中pull对比fetch和merge

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

git fetch

git fetch origin mastergit log -p master..origin/mastergit 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=======

转载地址:http://etgun.baihongyu.com/

你可能感兴趣的文章
小李发奖金
查看>>
java学习路线图
查看>>
问题 A: 回文质数 Prime Palindromes
查看>>
问题 C: Antiprime数
查看>>
求给定精度的简单交错序列部分和
查看>>
关于lower_bound( )和upper_bound( )的常见用法
查看>>
问题 C: 转圈游戏
查看>>
问题 A: A的B次方
查看>>
问题 B: 序列的第k个数
查看>>
线段数
查看>>
数列操作 — 线段树入门
查看>>
2016 ICPC大连赛区 [Cloned] H - To begin or not to begin
查看>>
2016 ICPC大连赛区 [Cloned] I - Convex
查看>>
2016 ICPC大连赛区 [Cloned]J - Find Small A
查看>>
Openstack 1
查看>>
Mac 怎么通过自带终端连接linux服务器
查看>>
【模式匹配】KMP算法的来龙去脉
查看>>
Openstack2
查看>>
Openstack 3
查看>>
双机互联
查看>>