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

如何更新基于非master分支创建的Git分支

更新你的branch分支以同步最新的dev分支

这种场景在日常开发里太常见了,别担心,有两种主流方法可以搞定,根据你的需求选就行:

方法一:使用Merge(合并)

这种方法会在branch分支上生成一个新的合并提交,保留分支的历史记录,适合不想改变原有提交历史的情况:

  • 先切换到你的branch分支:
    git checkout branch
    
  • 拉取远程仓库的最新代码(就是你说的fetch+pull,其实git pull默认就是fetch后merge,不过分开做也没问题):
    git fetch origin
    git merge origin/dev
    
    或者直接一步到位:
    git pull origin dev
    
  • 如果出现冲突,手动解决冲突后,提交合并结果:
    git add .
    git commit -m "Merge latest dev into branch"
    
  • 最后推送到远程的branch分支:
    git push origin branch
    

方法二:使用Rebase(变基)

这种方法会把branch分支上的所有提交“移动”到最新的dev分支顶端,让提交历史更线性整洁,适合还在自己开发、没有多人协作的branch分支:

  • 切换到branch分支:
    git checkout branch
    
  • 拉取远程dev的最新代码:
    git fetch origin
    
  • 执行变基操作,把branch基于最新的dev重放:
    git rebase origin/dev
    
  • 如果遇到冲突,解决冲突后执行:
    git add .
    git rebase --continue
    
    如果想放弃变基,可以用:
    git rebase --abort
    
  • 变基完成后,因为提交历史被修改了,需要强制推送到远程(注意:如果这个branch分支有其他开发者在协作,不要强制推送!):
    git push origin branch --force-with-lease
    
    用--force-with-lease比单纯的--force更安全,它会检查远程分支是否有你不知道的更新,避免覆盖别人的提交。

小提示

  • 如果你的branch是本地私有分支,没人跟你一起开发,优先用Rebase,历史更干净;
  • 如果branch已经推送到远程且有其他同事在协作,用Merge更稳妥,不会打乱别人的工作;
  • 你平时习惯的fetch+pull其实就是fetch后merge的组合,在这个场景下直接针对dev分支操作就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:06:54