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

参考链接

相关推荐
我的golang之路果然有问题4 小时前
给git配置SSH(github,gitee)
经验分享·笔记·git·学习·gitee·ssh·github
漫步企鹅5 小时前
[Git] Git Stash 命令详解
git·git push·git pull·git commit·git pull rebase
船长@Quant7 小时前
协作开发攻略:Git全面使用指南 — 第二部分 高级技巧与最佳实践
git·版本控制·源代码管理·协作开发
用户12653838705129 小时前
github 和 gitee 配置问题及相关问题解决
git·github
极小狐9 小时前
极狐GitLab Git LFS 速率限制如何设置?
运维·git·ssh·gitlab·github
极小狐10 小时前
如何解决极狐GitLab 合并冲突?
人工智能·git·机器学习·gitlab
一袋米扛几楼9810 小时前
【GIT】github中的仓库如何删除?
git·github
hjm470219210 小时前
GIT 使用小记
git
程序猿chen20 小时前
JVM考古现场(二十五):逆熵者·时间晶体的永恒之战(进阶篇)
java·jvm·git·后端·程序人生·java-ee·改行学it
biubiubiu07061 天前
git提交
git