我发现很多新手同事对git pull和git fetch傻傻分不清楚,用错了经常把代码搞乱。今天我就用大白话讲讲这俩的区别,保证你能听懂。
举个现实中的例子
想象你在和别人合写一份文档:
- git fetch 就像是你先问同事:"你那边改了啥?"同事把他的修改发给你,你先存着但不动自己的文档
- git pull 则是直接说:“把你改的发给我,我直接合并到我这份里”,连问带改一步到位
具体区别
1. git fetch:只下载不合并
git fetch origin main
- 作用:把远程仓库的最新代码下载到本地,但不动你的当前代码
- 查看变化:要用
git log origin/main或者git diff main origin/main来看具体改了啥 - 安全指数:⭐⭐⭐⭐⭐(完全不会影响你的代码)
2. git pull:下载+自动合并
git pull origin main
- 作用:相当于
git fetch+git merge两步一起执行 - 风险:如果远程改动和你的本地代码有冲突,会直接进入合并冲突状态
- 安全指数:⭐⭐⭐(新手容易翻车)
什么时候用哪个?
✅ 用fetch的情况:
- 想先看看别人改了啥再决定要不要合并
- 代码比较重要,想先检查再动手
- 团队协作时,先fetch看看差异
✅ 用pull的情况:
- 确定远程改动不会影响你的代码
- 独自开发的分支想快速同步
- 急着要合并别人的修改
血泪教训
去年我就吃过亏:当时急着改bug,直接git pull没看改动,结果同事把数据库配置改了,我本地启动直接报错,排查了半天。要是先用git fetch看看改动,就不会出这问题了。
实用小技巧
- 推荐工作流:
git fetch # 先看改动
git diff # 检查差异
git pull # 确认没问题再合并
- 想看远程有啥分支:
git fetch --all # 更新所有远程分支信息
git branch -a # 查看所有分支
记住:fetch是看,pull是改。不确定的时候先用fetch保平安!
306

被折叠的 条评论
为什么被折叠?



