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

为何文章作者从develop分支创建feature分支用checkout而非fetch?

关于Git分支模型的两个疑问解答

1. 从本地develop创建feature分支会不会用到过时代码?

会的。如果你的本地develop分支没同步远程仓库的最新提交,直接基于它创建feature分支,新分支的起点就是过时的。后续把feature合并回develop时,大概率会因为远程develop已有其他人的新提交而产生冲突。

那个经典的Git分支模型里,其实默认你在开feature分支前,已经完成了同步远程develop到本地的操作:先执行git fetch origin develop,切换到本地develop分支后再git pull origin develop,确保本地代码和远程完全一致,再去创建feature分支。跳过这步的话,确实会用到过时分支。

2. 合并推送时用checkout不用fetch的原因?

作者的操作里没提fetch,不是不需要,而是fetch属于前置同步步骤,被模型默认成了你已经完成的基础操作。

具体来说,把本地feature合并到develop并推送的完整正确流程应该是:

  • 先git fetch origin develop,获取远程develop的最新提交
  • 切换到本地develop分支(也就是作者写的git checkout develop)
  • 执行git pull origin develop,把远程最新代码拉到本地develop
  • 合并feature分支(git merge feature/xxx)
  • 最后推送到远程(git push origin develop)

作者只写了checkout develop,是因为分支模型的核心是讲分支流转逻辑,而非每一步的基础同步命令——默认你知道合并前要确保本地develop是最新的,而fetch就是实现这个前提的必要操作之一,只是没在流程里单独列出而已。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 12:35:28