交错使用两个Git存储库

hrirmatl  于 2022-11-20  发布在  Git
关注(0)|答案(1)|浏览(143)

如何根据提交/作者日期交叉提交历史来连接两个Git仓库?
我们可以假设两个存储库都包含单独的文件。但是,文件夹名称可能相同,应该进行深度合并。
例如,存储库a如下所示:
第一个
而存储库b看起来像:
第一次
假设提交/创作日期顺序为A1B1B2A2A3B3,则生成的存储库c应如下所示:
第一个
我们还可以假设没有两个提交/作者日期是相同的,这样顺序就定义好了。
这不同于合并两个Git仓库而不中断文件历史记录,它保留两个分支并创建一个合并提交。
这可能是How to merge several Git repos into one and interleave histories的简单情况

8iwquhpp

8iwquhpp1#

鉴于这两个历史记录涉及不同的内容,如果您能够按提交列出所有修订版本,那么您可能能够实现这一点(或作者)日期.....我 * 不 * 认为如果你要求git log向你显示两个分支的修订,它会把它们交织在一起....所以你可能要先对它们排序....所以,建立一个仓库,这样你就可以访问两个分支。创建一个新的空分支(git checkout --orphan并清理内容),然后这样就可以了:

git log --pretty="%at %h" branch1 branch2 | sort -n | while read date revision; do git cherry-pick $revision; done

或者沿着的东西
考虑到@LeGEC的评论,那么它可以调整为:

git log --reverse --date-order --pretty="%h" branch1 branch2 | while read revision; do git cherry-pick $revision; done

相关问题