1. git fetch 和 pull 的区别1.1 核心区别git fetch只下载不合并动作它只会把你远端仓库最新的所有提交Commit下载到本地的缓存区即远程追踪分支如 origin/main但绝对不会动你当前正在写代码的分支工作区。状态执行完后你的本地代码没有任何变化安全系数极高git pull下载 自动合并动作它会直接一步到位。先执行 fetch 把远程最新代码拉下来紧接着立刻自动执行 merge把你当前所在的本地分支和远程对应的分支进行合并。状态你的本地工作区会瞬间被更新。如果远端和本地修改了同一个文件的同一行此时会直接触发冲突Conflict需要你立即解决。1.2 底层原理我们可以把 Git 的仓库结构拆解为三个部分工作区Working Directory你正在修改的局部代码。本地历史Local Repository你已经 commit 但可能还没 push 的记录。远程追踪分支Remote Tracking Branches本地记录的远程分支状态如 origin/master。执行 git fetch 时Git 只更新了 远程追踪分支。远程仓库(Remote)──[git fetch]──本地远程追踪分支(origin/master)│(到此为止工作区未受影响)此时你可以通过 git log log origin/master 来查看远程有哪些新提交或者通过 git diff origin/master 对比自己和远端代码的差异。执行 git pull 时Git 连续完成了两步远程仓库(Remote)──[1.fetch]──远程追踪分支 ──[2.merge]──本地当前分支工作区1.3 怎么合理使用我们每有一个需求时就会新创建一个分支进行开发。开发完成后才合并到master上那么在开发期间git pull和gitfetch怎么合理使用场景一对主干 master —— 多用 fetch谨慎 pull你在写自己的需求master 是别人合并代码的地方。合理做法使用 git fetch origin master。为什么它只把别人新合进 master 的代码下载到你本地的临时缓存区origin/master完全不影响你当前正在写的代码。你可以安全地用 IDEA 的 Version Control 界面去瞅一眼“呀张三昨天下午合了一个大重构改到了我正在用的公共类。” 做到心中有数。场景二把 master 的新代码同步到你的需求分支 —— 用 merge 或 rebase当你用 fetch 看到 master 有了重要更新决定把这些更新同步进你的 feature-login 分支时合理做法不要直接在当前分支执行 git pull origin master这容易把本地历史搞乱。推荐在你的需求分支下执行git fetch origin master git rebase origin/master # 或者 git merge origin/master场景三对自己的需求分支 —— 视情况用 pull如果你是单人开发这个需求你不需要对自己的分支执行 git pull。因为远程的 feature-login 只由你一个人推上去本地永远是最新的。如果是两个人协作开发同一个需求每天早晨开工必须在你的需求分支下执行 git pull推荐 git pull --rebase把队友昨天写完推上去的代码拉下来。git fetch origin获取远程仓库 所有分支 的更新。 git fetch origin master只获取远程仓库 master 这一个分支 的更新。“每日开发工作流”推荐刚到工位喝口水第一件事不是直接写代码而是刷新一下远程状态gitfetch--all--prune这会把远程所有分支包括 master、其他队友的分支的最新提交记录都抓取到本地。此时打开 IDEA 的 Git 图形提交树你能清晰地看到整个团队昨天的战果而你的本地代码依然稳如泰山。中午或傍晚顺手同步主干Fetch Rebase发现 master 往前推进了为了防止最后一天提 MR 时冲突太多主动合一次gitfetch origin mastergitrebase origin/master需求开发完毕准备合并前最后总攻Pull代码写完了准备在 GitLab/GitHub 上提 Merge Request 之前做最后一次对齐1.切换到本地 master 并拉到最新git checkout master git pull2.切回需求分支把最新 master 顶在最下面git checkout feature-login git rebase master确保本地编译、测试全过放心推送到远端提 MR。2.冲突解决https://blog.csdn.net/qq_42108331/article/details/142671882
5:IDEA中git的使用--git fetch 和 git pull 和解决冲突
发布时间:2026/7/5 10:31:06
1. git fetch 和 pull 的区别1.1 核心区别git fetch只下载不合并动作它只会把你远端仓库最新的所有提交Commit下载到本地的缓存区即远程追踪分支如 origin/main但绝对不会动你当前正在写代码的分支工作区。状态执行完后你的本地代码没有任何变化安全系数极高git pull下载 自动合并动作它会直接一步到位。先执行 fetch 把远程最新代码拉下来紧接着立刻自动执行 merge把你当前所在的本地分支和远程对应的分支进行合并。状态你的本地工作区会瞬间被更新。如果远端和本地修改了同一个文件的同一行此时会直接触发冲突Conflict需要你立即解决。1.2 底层原理我们可以把 Git 的仓库结构拆解为三个部分工作区Working Directory你正在修改的局部代码。本地历史Local Repository你已经 commit 但可能还没 push 的记录。远程追踪分支Remote Tracking Branches本地记录的远程分支状态如 origin/master。执行 git fetch 时Git 只更新了 远程追踪分支。远程仓库(Remote)──[git fetch]──本地远程追踪分支(origin/master)│(到此为止工作区未受影响)此时你可以通过 git log log origin/master 来查看远程有哪些新提交或者通过 git diff origin/master 对比自己和远端代码的差异。执行 git pull 时Git 连续完成了两步远程仓库(Remote)──[1.fetch]──远程追踪分支 ──[2.merge]──本地当前分支工作区1.3 怎么合理使用我们每有一个需求时就会新创建一个分支进行开发。开发完成后才合并到master上那么在开发期间git pull和gitfetch怎么合理使用场景一对主干 master —— 多用 fetch谨慎 pull你在写自己的需求master 是别人合并代码的地方。合理做法使用 git fetch origin master。为什么它只把别人新合进 master 的代码下载到你本地的临时缓存区origin/master完全不影响你当前正在写的代码。你可以安全地用 IDEA 的 Version Control 界面去瞅一眼“呀张三昨天下午合了一个大重构改到了我正在用的公共类。” 做到心中有数。场景二把 master 的新代码同步到你的需求分支 —— 用 merge 或 rebase当你用 fetch 看到 master 有了重要更新决定把这些更新同步进你的 feature-login 分支时合理做法不要直接在当前分支执行 git pull origin master这容易把本地历史搞乱。推荐在你的需求分支下执行git fetch origin master git rebase origin/master # 或者 git merge origin/master场景三对自己的需求分支 —— 视情况用 pull如果你是单人开发这个需求你不需要对自己的分支执行 git pull。因为远程的 feature-login 只由你一个人推上去本地永远是最新的。如果是两个人协作开发同一个需求每天早晨开工必须在你的需求分支下执行 git pull推荐 git pull --rebase把队友昨天写完推上去的代码拉下来。git fetch origin获取远程仓库 所有分支 的更新。 git fetch origin master只获取远程仓库 master 这一个分支 的更新。“每日开发工作流”推荐刚到工位喝口水第一件事不是直接写代码而是刷新一下远程状态gitfetch--all--prune这会把远程所有分支包括 master、其他队友的分支的最新提交记录都抓取到本地。此时打开 IDEA 的 Git 图形提交树你能清晰地看到整个团队昨天的战果而你的本地代码依然稳如泰山。中午或傍晚顺手同步主干Fetch Rebase发现 master 往前推进了为了防止最后一天提 MR 时冲突太多主动合一次gitfetch origin mastergitrebase origin/master需求开发完毕准备合并前最后总攻Pull代码写完了准备在 GitLab/GitHub 上提 Merge Request 之前做最后一次对齐1.切换到本地 master 并拉到最新git checkout master git pull2.切回需求分支把最新 master 顶在最下面git checkout feature-login git rebase master确保本地编译、测试全过放心推送到远端提 MR。2.冲突解决https://blog.csdn.net/qq_42108331/article/details/142671882