You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何在本地main分支执行git fetch会拉取远程dev分支的变更?

Git Fetch 拉取所有远程分支变更的原因解析

首先明确git fetch的默认行为:不带任何参数执行git fetch时,Git会拉取你配置的远程仓库(默认是origin)下所有分支的最新提交,和你当前处于哪个本地分支、该分支追踪的是哪个远程分支没有关系。

回到你的场景:

  • 你本地的dev分支已经设置了上游为origin/dev,远程GitHub上的dev分支有新修改后,执行git fetch会同步整个origin仓库的所有分支数据,自然也包括origin/dev的最新变更,这就是为什么你看到远程dev的变更被拉取下来了。
  • 而你觉得git push逻辑符合预期,是因为git push的默认行为是:仅推送当前本地分支对应的上游远程分支(前提是该本地分支已经设置了上游追踪关系),和fetch的全量拉取逻辑完全不同。

如果想实现「只拉取当前分支追踪的远程分支变更」,可以指定分支名执行:

git fetch origin main

这样就只会同步origin/main的最新提交,不会涉及其他远程分支。

内容的提问来源于stack exchange,提问作者Eric Movsessian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 16:35:50