我在Git中有以下情况:
A--B--C--D--E--F--G
\--H--I
我想重新分支分支,但保留原始分支。所以我想要这个:
A--B--C--D--E--F--G
\--H--I \--H'--I'
原因是我的重新分支可能会破坏事物。如果它做得太多,我无法轻易修复它,我想继续使用旧分支。
这是在主分支实际上基于另一个存储库并且远远落后于原始存储库的情况下。我正在尝试将我们的(H-I)分支恢复到原始主分支的最新版本。
只需创建一个新的分支就可以了。
git checkout your-old-branch
git checkout -b to-be-rebased
git rebase master
并且工作在to-be-rebased
,直到你有一些可行的东西。
所以your-old-branch
仍然指向同样的确切提交,不受影响。
......并且两个第一个结账步骤可以组合成一个(如Johnathon所指出的),以避免不必要的结账步骤:
git checkout -b to-be-rebased your-old-branch
最后,为了公平对待Lasse's comment,我们可以继续使用cherry-pick
达到同样的效果:
git checkout -b new-branch master
git cherry-pick master..your-old-branch