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

参考链接

相关推荐
随风,奔跑43 分钟前
Git学习笔记
笔记·git·学习
Gary Studio2 小时前
Git vscode 插件推荐
ide·git·vscode
StackNoOverflow3 小时前
IDEA + Git + Gitee 全流程实战:从安装、提交到解决冲突
git·gitee·intellij-idea
淘矿人16 小时前
从0到1:用Claude启动你的第一个项目
开发语言·人工智能·git·python·github·php·pygame
lpfasd12317 小时前
Git/Gitee/GitHub 3 个安全凭证详解
git·gitee·github
李日灐21 小时前
< 7 > Linux 开发工具:git 版本控制器 和 cgdb/gdb 调试器
linux·运维·服务器·开发语言·git·调试器·gdb/cgdb
Gust of wind21 小时前
idea结合git和Gitee的初步使用
git·gitee·intellij-idea
夜七少eleanor21 小时前
【Git】2026全图文详解安装教程
git
海边的Kurisu21 小时前
从零开始的Git生活 | 刚实习同学的噩梦 And 参与开源不可缺的一环
git·生活
不老刘1 天前
Git Cherry-Pick:微前端架构下的“精准医疗”与最佳实践
前端·git