将 git 历史拆分为分支

Splitting git history into branches

我们使用 Git 进行回购。我不知道如何,但我的团队的最新历史结果是这样的:

0                 master
 \
  1-2-3-4-5-6-7   branch1 & branch2

请注意(谢天谢地)还没有人将它与我们的 master 分支合并。现在,我想把它拆分成这样:

             5-6-7     branch2
            /     \
0  - - -  (*) - - (*)  master
 \       /  
  1-2-3-4              branch1

我没有使用 Git 的经验,我想知道如何实现

假设 branch1branch2 都指向 7,更安全的选择是创建另一个分支 n_branch1 并执行以下操作:

git checkout <sha_4>
# you'll now be in a detached head
git checkout -b n_branch1   
# Now go to master and merge n_branch1
git checkout master
git merge n_branch1
# Once branch1 commits are merged, apply branch2 on top of them.
git checkout branch2
git rebase master

注意:您也可以通过将 branch1 恢复为 4 来重复使用它(请参阅 here)。