我需要找到一种方法,使用Git从分支中删除除最后一个(最近的)159之外的所有提交。我也可以创建一个新分支并将最后一个分支移动到其中,如果这对你来说是一个更好的方法。
有什么想法吗?我已经尝试了this,但它似乎只允许我恢复某个提交(并且这不是我想要的)。
答案 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提交的更改,并使用此更改创建一个新的提交。
...
的语法是提交范围。从开始(排除)到最后一个提取所有提交。
宣读完整的git cherry-pick
documentation for all the options you can use