我怎样才能让 GIT 中的两个不相关的分支有一个共同的根?

How can i have two unrelated branches in GIT have a common root?

我最近将我的 SVN 存储库迁移到了 GIT。 SVN 存储库有 2 个具有相同提交历史的分支。现在在 GIT 中,我想让这两个带有平行图的分支有一个共同的根。我该怎么做? 将一个分支变基到另一个分支是行不通的。

$ git checkout BRANCH_1
$ git rebase BRANCH_2

这给了我一个无关历史的错误。

$ git rebase BRANCH_2 --allow-unrelated-histories

没有在他们应该的提交时加入两个分支。

以下对我有用..

据推测,这两个分支是 BRANCH_1 BRANCH_2

$ git checkout BRANCH_1

我从需要公共根的地方检出提交

$ git checkout e405d8d172dfa017a3fea17ce111dff280412a3c

然后我从当前提交创建了一个新分支并检查了它

$ git branch NEW_BRANCH
$ git checkout branches/release/0.0.1

然后我从 BRANCH_2

中挑选了我想要的提交
$ git cherry-pick 47c661bfb8cbf79017bff53fedbbd7db13cf68bf
$ git push --set-upstream origin NEW_BRANCH
$ git branch -D BRANCH_2

注意:我可以删除 BRANCH_2,因为两个分支的历史记录相同。 即

$ git diff 47c661bfb8cbf79017bff53fedbbd7db13cf68bf e405d8d172dfa017a3fea17ce111dff280412a3c

返回为空