【发布时间】:2016-04-18 01:44:05
【问题描述】:
我不太了解 git。 :-/
背景
我有两个不相关的基于 git 的文档存储库,我想将它们合并到一个存储库中。我想保留原始时间戳(可追溯到 2005 年)和单个文件历史记录。两个repos不包含分支,不包含文件夹,在文件命名方面也没有重叠。
在 ASCII 领域,它看起来像这样:
REPO A |-------------------------|
REPO B |===============|
重叠表示时间。
目标
我的目标是“压缩”重叠的时间戳,使两个存储库看起来像一个单一的、完整的历史记录:
REPO A+B |-------------------==--=---============|
我的尝试
再说一次,我不太了解 git,所以我可能搞砸了。
首先,我尝试将较新、较小的存储库添加为较大、较旧存储库的远程,获取更改并提交结果。最后,我将所有新的 repo 更改集中在旧 repo 之后的一个分支中:
MERGE |------------------------- -|
\===============/
接下来我尝试了变基(使用--committer-date-is-author-date),我认为这可行,但我最终得到了一个很长的提交历史,只是将两个存储库堆叠在一起。
REBASE |-------------------------===============|
我还没有找到“重播”合并历史的方法。我真的希望 rebase 能成为答案。
我看过的答案
【问题讨论】:
-
如果使用 merge 方法,
git log --date-order将按照您的要求显示按提交时间排序的提交,git log --date-order --graph将分支树显示为好吧。
标签: git git-rebase