在一个项目中,我们的git日志就像
1--2--3----------------------------12-- (master)
\-4--5--------8---9------11-/ \ (branch1)
\--6-------/---10-/ \ (branch2)
\-7-------/ \ (branch3)
\-13 (newbranch)
我想拥有:
1--2--3--4--5--6--7--8--9--10--11--12-- (master)
\-13 (newbranch)
那就是删除所有分支,但保留历史记录和提交(以供进一步参考)。
提前致谢。
我会发表评论,但我没有足够的声誉。您能澄清一下吗-提交9到12是合并提交吗?如果是,为什么要在线性历史记录中包括合并提交?忽略合并提交的线性历史记录不是重点吗?
编辑:无论如何,请尝试以下操作:
1)计算出提交1的提交哈希。假设它是5678。
2)git checkout master
。然后执行git rebase -i 5678
。您会得到提示。重新排列提交1到12。然后保存并退出编辑器。
3)git checkout newbranch
。然后执行git rebase master
。
重写历史记录总是有风险的,因此在尝试执行此操作之前,请确保确保有另一个指向master的分支(起源/ master或其他本地分支),这样,如果出现问题,我可以git reset --hard <pointer-to-previous-master>
。newbranch也是如此。
完成后,在master和newbranch上一切都看起来不错,您可以使用删除分支1-3 git branch -D
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句