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

参考链接

相关推荐
A_Lonely_Cat2 天前
记一次 GitHub 幽灵协作者大清洗:强制重写 Git 历史与穿透 CDN 缓存实践
git·github
和你看星星4 天前
Git rerere:让重复冲突只解决一次
git
嘻嘻仙人8 天前
Ubuntu中 git上传自己的项目和二次上传一般流程
git·github
Patrick_Wilson8 天前
Squash Merge 的血缘陷阱:为什么删掉的代码又活了过来
前端·git·程序员
沉浸学习的匿名网友8 天前
什么是 .gitignore?为什么每个 Git 项目几乎都离不开它?
前端·git
深海鱼在掘金9 天前
Git 完全指南 —— 第3章:理解工作区、暂存区、版本库三个核心
git
江华森9 天前
Git 基础筑基:从原理到团队协作的全栈实战
git
JakeJiang9 天前
Git 必备命令指南:从日常高频到项目开发实战
git
叫我少年10 天前
Windows 中安装 git
git
深海鱼在掘金15 天前
Git 完全指南 —— 第1章:Git 概览与版本控制演进
git