git rebase保持日期顺序

时间:2016-01-20 09:02:20

标签: git git-rebase

我需要做一个非常大的git rebase来重新组织所有的存储库。为了保留我的树,我使用了git rebase --preserve-merges --onto master bf40caa develop

一开始一切正常,所有合并都会保留并且工作正常,但是,在源代码树中我留下了以下树:

Git graph

(很明显,d25b5ad是初始提交,并且在此之前没有更多提交)

那是因为,尽管d12020e父亲是b0427f6,但由于他们是在同一时间创建的,我们会失去订单。我知道这可以通过更改为ancestor order而不是date order来解决,但我想知道是否有某种方法可以保持这些提交的顺序...也许在重新定位时在提交之间添加1秒的延迟?我怎么能这样做?

编辑:@Enrico Campidoglio,不,这不是其他问题的重复......以这种方式做得更糟糕......让我们更详细一点:

在这种情况下,我有一个拥有两个模块的大型存储库。我们从一个模块(我们称之为A)开始,一旦它被“完成”,“我们就开始在另一个模块中使用另一个模块(让我们称之为B)”。然后我们决定将这些模块中的每一个拆分到它们自己的存储库中,所以我想要做的就是将所有树推到A完成的地方到模块-A-repository,然后推送“仅”模块B提交模块-B-repository。

问题是我们不能这样做,因为B的第一次提交取决于A留下的整个树。所以我做了一个包含项目状态的孤立提交,就像A完成时一样(这个提交是截图中的“初始提交”)并且B的rebase提交到了这个提交。

然后请注意,如果我执行可能的重复操作,则无法解决此问题,因为此Initial commit已“完成”,这是在第一次提交B之后的方式。

但是,现在我看到还有另一种解决方案:在第一次提交Initial commit之前将此B日期设为一,然后运行“可能重复”的解决方案。

0 个答案:

没有答案