我有一个看起来有点像这样的git存储库:
C0 ---- C1 ---- ... ---- C12 ---- C14 (dev)
\
\---- C13 (abandoned)
' dev的'是主要的发展分支,并且“放弃了”#39;是一项我们可能希望在未来某个时候重新审视的实验。
我想将C1
... C12
压缩成一个提交,以获得这样的内容:
C0 ---- C1' ---- C14' (dev)
\
\---- C13' (abandoned)
我可以在dev上使用交互式rebase来获取
C0 ---- C1' ---- C14' (dev)
然后查看C1'
和樱桃挑选C13
为C13'
。但有没有更简单的方法,这也可以扩展到处理更复杂的图表与更多的分支和不同的提交(但一些共享历史被压扁)没有大量的手工工作?
答案 0 :(得分:3)
你走在正确的轨道上。首先,忽略C13
,然后使用交互式rebase压缩到C0 - C1' - C14'
。但是,不要挑选,但要C13
到C1'
。 git
应该检测到这基本上是一个无操作,你就会完成。所以:
git rebase --onto C1_new C12 C13