如何从分支中删除除最后一个x之外的所有提交?

时间:2016-04-18 08:53:23

标签: git branch commit revert

我需要找到一种方法,使用Git从分支中删除除最后一个(最近的)159之外的所有提交。我也可以创建一个新分支并将最后一个分支移动到其中,如果这对你来说是一个更好的方法。

有什么想法吗?我已经尝试了this,但它似乎只允许我恢复某个提交(并且这不是我想要的)。

1 个答案:

答案 0 :(得分:3)

最简单的方法是创建一个孤立分支,然后挑选新分支的提交范围。

# create orphan branch 
git checkout --orphan <branch>

git cherry-pick <SHA-1>...<SHA-1>
  

<强> git checkout --orphan

     

创建一个名为,启动并切换到它的新孤立分支。在这个新分支上进行的第一次提交将没有父级,它将成为与所有其他分支和提交完全断开的新历史的根。

如何将所需的提交添加到不同的分支。

git cherry-pick <SHA-1>...<SHA-1>

  

在master分支的顶端应用commit提交的更改,并使用此更改创建一个新的提交。

...的语法是提交范围。从开始(排除)到最后一个提取所有提交。

enter image description here

宣读完整的git cherry-pick documentation for all the options you can use