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

Git如何基于现有分支的指定提交范围创建新分支

如何基于指定提交范围创建新分支?

嘿,这事儿好办!我来给你讲两种靠谱的方法,帮你从现有分支里把commit38到commit40这几个提交拎出来建个新分支:

方法一:用git cherry-pick精准提取提交

这种方法逻辑直白,适合明确指定提交范围的场景:

  1. 先找到commit38的父提交(也就是commit37),如果不知道它的哈希,敲git log --oneline就能看到所有提交的简短标识。然后基于这个父提交创建一个空的新分支:
    git checkout -b new-branch commit37
    
    要是commit40是当前分支的最新提交,也可以用相对引用代替commit37的哈希,比如HEAD~3(从commit40往前数3个就是commit37),命令改成:
    git checkout -b new-branch HEAD~3
    
  2. 接着把commit38到commit40这三个提交“复制”到新分支上:
    git cherry-pick commit37..commit40
    
    这里的commit37..commit40刚好包含commit38、39、40所有提交(Git的范围语法里,A..B指的是所有能从B到达但不能从A到达的提交,完美匹配我们的需求)。

方法二:先建分支再裁剪多余提交

如果commit38到40是原分支最末尾的三个提交,这个方法更快捷:

  1. 直接基于原分支的最新提交(commit40)创建新分支:
    git checkout -b new-branch  # 要是你不在原分支上,就加上分支名比如git checkout -b new-branch main
    
  2. 用交互式变基把commit38之前的提交全部移除:
    git rebase -i commit37
    
    执行命令后会弹出一个文本编辑器,里面只显示commit37之后的提交(也就是我们要的commit38、39、40)。你只需要保留这三行记录(如果有其他多余提交,把前面的pick改成drop或者直接删掉那行),保存退出后,新分支就只包含目标提交了。

小提示

要是记不清提交哈希,随时用git log --oneline查看,它会输出每个提交的简短哈希和提交信息,找起来超方便!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 14:12:45