git fetch 与 git pull的区别

git fetch 与 git pull

git fetchgit pull命令都是将远端仓库代码更新至本地,那么他们两者有什么区别呢?
简单概括两者区别如图所示:

git fetch 与 git pull 图解


git fetch:是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。具体操作如下:

 

 

git  fetch origin master:temp 
\\本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git diff temp
\\比较远程代码与本地代码的区别
git merge temp
\\将temp分支合并到本地master分支
git branch -d temp
\\如果不想保留分支,可以将其删除

git pull:基于本地的FETCH_HEAD记录,比对本地的FETCH_HEAD与远程仓库的版本号,然后git fetch获得当前的远程分支的后续版本的数据,然后利用git merge将其与本地的分支合并,可以认为是git pullgit fetchgit merge两个步骤的合并。
实际的git pull 过程可以理解为:

 

git fetch origin master  \\将远端的master分支拉取最新内容
git merge FETCH_HEAD \\将拉取的最新内容与当前分支合并

git pull用法:

 

git pull <远程主机名>  <远程分支名>:<本地分支名>
\\将远程主机的某个分支,与本地的指定分支合并

git pull合并后可能会出现冲突,需要手动解决冲突。
出现的错误提示如下

 

error: Your local changes to the following files would be overwritten by merge:
Please commit your changes or stash them before you merge.
\\更新的代码与本地的修改代码有冲突,先提交你的改变或者先将本地修改暂存起来

解决冲突的方式:先将本地的代码暂存

 

git stash \\先将本地修改暂存起来
git stash list  \\查看保存信息
git pull     \\拉取内容
git stash pop   \\还原暂存的内容

参考文章

详解 git fetch 与 git pull 区别
处理git pull 冲突

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值