Git 将2个分支合并为一个分支

Git 将2个分支合并为一个分支,git,merge,branch,git-filter-branch,git-rewrite-history,Git,Merge,Branch,Git Filter Branch,Git Rewrite History,在GIT中,我在单个存储库中有两个分支——分支“A”和分支“B”(从旧SVN存储库中的两个文件夹创建) 这些分支完全分离:它们没有共同的祖先 每个分支都会写入不同的目录。 例如:分支A只写入目录“~/A”,分支B只写入目录“~/B”(因此没有冲突) 我想将这两个分支合并成一个分支,这样它看起来就像一个分支存储库 我试过: git merge-它将合并分支,但在历史上,这两个分支都是可见的 git rebase-它可以工作,但提交的顺序是错误的-我希望按时间顺序进行提交 最好的方法是从两个分支

在GIT中,我在单个存储库中有两个分支——分支“A”和分支“B”(从旧SVN存储库中的两个文件夹创建)

这些分支完全分离:它们没有共同的祖先

每个分支都会写入不同的目录。 例如:分支A只写入目录“~/A”,分支B只写入目录“~/B”(因此没有冲突)

我想将这两个分支合并成一个分支,这样它看起来就像一个分支存储库

我试过:

  • git merge-它将合并分支,但在历史上,这两个分支都是可见的
  • git rebase-它可以工作,但提交的顺序是错误的-我希望按时间顺序进行提交
最好的方法是从两个分支获取所有更改,按时间排序,并在某个新分支上逐个“重播”。但是我不知道怎么做

谢谢你的回答

编辑: 这就是它现在的样子(按时间从左到右):

您可以使用将提交重新排序为所需的顺序

Interactive rebase允许您在文本文件中对更改进行重新排序,我建议您编写一个bash脚本,以按照所需的时间顺序准备提交列表,例如:

pick b111111 B1
pick a111111 A1
pick a222222 B2
pick a222222 A2
pick b333333 B3
pick a333333 A3
…然后在交互式基础中使用它。

Thx,它可以工作。我使用“git cherry pick”将一组分支合并在一起。
pick b111111 B1
pick a111111 A1
pick a222222 B2
pick a222222 A2
pick b333333 B3
pick a333333 A3