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

如何创建基于Feature分支但不含其提交历史的新Git分支?

解决方法:基于Feature分支内容创建无Feature提交历史的新分支

你需要的是保留master的提交历史,同时将Feature分支的当前内容作为新分支的初始状态,而非继承Feature分支的提交记录。以下是具体步骤:

  • 切换到本地最新的master分支:

    git checkout master
    git pull origin master  # 可选,确保master与远程同步
    
  • 基于master创建新分支:

    git checkout -b new-feature-branch
    
  • 将Feature分支的所有文件内容覆盖到当前新分支:

    git checkout feature-branch -- .
    

    (注:将feature-branch替换为你的实际Feature分支名称;如果只需同步特定文件/目录,可把.换成具体路径,比如src/)

  • 提交当前内容,完成新分支的初始化:

    git add .
    git commit -m "Initialize branch with feature-branch content"
    

原理说明

这个方法相当于模拟了「Feature分支合并到master后,再从master创建新分支」的效果:

  • 新分支的历史起点是master的最新提交,完全不包含Feature分支的提交记录
  • 初始提交将Feature分支的所有内容整合到master历史之上,后续对比master+feature分支与新分支时,只会显示新分支后续新增的提交(因为两者初始内容一致)

对比--orphan的优势

git checkout --orphan会创建一个无任何父提交的空分支,彻底清除所有历史;而本方法保留了master的完整提交历史,同时实现了你需要的「无Feature提交记录」的目标,更符合版本管理的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:33:38