Git Fetch 和 Git Pull 的区别

Git fetch和git pull的区别

二者都能够从远程获取最新版本到本地。

1. Git fetch

仅从远程获取最新版本到本地,不会进行 merge(合并)操作。

操作示例

  • 从远程的 origin的 master 主分支上获取最新版本到 origin/master 分支上:
bash 复制代码
git fetch origin master
  • 比较本地的 master分支和 origin/master 分支的区别:
bash 复制代码
git log -p master..origin/master
  • 合并操作:
bash 复制代码
git merge origin/master

2. Git pull

从远程获取最新版本并 merge(合并)到本地。

操作示例

以下命令相当于进行了 git fetch 和 git merge两步操作:

bash 复制代码
git pull origin master

实际工作中的选择

在实际工作中,git fetch可能是更好的选择。因为在执行 merge之前,可以根据实际情况决定是否进行合并。

报错 error: You have not concluded your merge (MERGE_HEAD exists). 的原因及解决办法

原因

该报错可能是由于以前 pull下来的代码自动合并失败导致的。

解决办法

办法一:保留本地的更改,中止合并 -> 重新合并 -> 重新拉取
bash 复制代码
git merge --abort
git reset --merge
git pull
办法二:舍弃本地代码,远端版本覆盖本地版本(慎重使用)
bash 复制代码
git fetch --all
git reset --hard origin/master
git fetch

参考链接

相关推荐
MUTA️8 小时前
git传输超过100MB的文件
git
ALex_zry8 小时前
Git大型仓库推送失败问题完整解决方案
大数据·git·elasticsearch
二进制coder9 小时前
Git Fork 开发全流程教程
大数据·git·elasticsearch
程序员馨馨9 小时前
不扰远程仓库,本地双版本:master 留 A 稿,分支藏 B 稿
git
无限进步_10 小时前
C语言动态内存的二维抽象:用malloc实现灵活的多维数组
c语言·开发语言·数据结构·git·算法·github·visual studio
用户478612972069210 小时前
Git:如何排查非线性历史中被隐秘覆盖的修改(完整实战笔记)
git
weixin_3776348413 小时前
【Git使用】PyCharm中的Git使用
ide·git·pycharm
爱吃泡芙的小白白15 小时前
vscode、anaconda、git、python配置安装(自用)
ide·git·vscode·python·anaconda·学习记录
ALex_zry21 小时前
Git大型仓库推送失败问题解决方案:大文件传输优化指南
git
草莓熊Lotso21 小时前
Git 分支管理:从基础操作到协作流程(本地篇)
大数据·服务器·开发语言·c++·人工智能·git·sql