从主分支中间删除特定的分支提交
问题描述:
我有很多属于特定分支的提交(数百),这是很久以前合并为主(该合并后有新的提交)。 关于如何从主人中删除这些提交的任何想法?建议不要一个一个地用git-revert。更像是一个filter-branch命令。 谢谢从主分支中间删除特定的分支提交
答
然后你要做的事情很简单:在之前识别修订你想从历史中删除的分支被合并。看看这个版本....然后选择合并后的所有版本。
假设之前的版本合并为修订版A,合并版本为B,您正在工作的分支被称为'someBranch'。然后,你可以这样做:
git checkout A
git cherry-pick B..someBranch
如果你喜欢的结果,那么你可以重新指向someBranch到当前版本:
git branch -f someBranch
git checkout someBranch
当你重写一个分支,其他人都在工作“旧分支“,那么为了推动这个新的”重写“历史而存在摩擦,所以记住这一点。
你想把它们带回来,就像“将它们从分支的历史中删除,就好像它们没有发生过一样”(重写分支历史),或者你想“根据分支的当前历史记录应用提交那些变回“(恢复,不需要重写)? – eftshift0
[Git delete push commits]的可能重复(https://stackoverflow.com/questions/13577283/git-delete-pushed-commits) – legoscia
@Edmundo第一选择:将它们从主分支的历史记录中删除,就好像它们没有这种情况不会发生 – Cezar