我怎样才能让 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
返回为空
我最近将我的 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
返回为空