git中的pull和fetch有什么区别(阁瑞钛伦特软件-九耶实训)

详解git fetch和git pull区别

git fetch和 git pull 都可以将远程仓库更新到本地,那么它们有什么区别呢?想要弄清楚这个问题,有几个概念不得不提。

fetch_head

是一个版本连接,记录在本地的一个文件中,指向着目前已经从远程仓库取下来的分支的末端版本。

commit-id

在每次本地工作完成后,都会做一个git commit操作提交当前操作到本地仓库,此时会产生一个commit-id,这是唯一一个能标识这个版本的序列号,在使用git push后,这个序列号还会同步到远程仓库。

git fetch

有了以上概念再来说说git fetch
这将更新git remote中所有的远程仓库所包含分支的commit-id,将其记录到.git/fetch_head文件中。
git fetch更新远程仓库的方式如下

 

git pull

首先基于本地的fetch_head记录,比对本地的fetch_head记录与远程的的版本号,然后git fetch获得当前指向的远程分支的后续版本的数据,然后再利用git merge将其与本地的当前分支合并。所以可以认为: git pull = git fetch + git merge
git pull的用法如下

 

因此,git fetch是从远程获取最新版本到本地,但不会自动merge。
而git pull则是会获取所有远程索引并合并到本地分支中来。效果相同时git pull将更为快捷。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值