Git:在分支机构之间共享挤压材料

时间:2016-10-21 14:58:21

标签: git version-control branch rebase squash

我有一个看起来有点像这样的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'和樱桃挑选C13C13'。但有没有更简单的方法,这也可以扩展到处理更复杂的图表与更多的分支和不同的提交(但一些共享历史被压扁)没有大量的手工工作?

1 个答案:

答案 0 :(得分:3)

你走在正确的轨道上。首先,忽略C13,然后使用交互式rebase压缩到C0 - C1' - C14'。但是,不要挑选,但要C13C1'git应该检测到这基本上是一个无操作,你就会完成。所以:

git rebase --onto C1_new C12 C13