我在Git中遇到以下情况:
A--B--C--D--E--F--G
\--H--I
我想重新建立分支,但保留原始分支。所以我想要这个:
A--B--C--D--E--F--G
\--H--I \--H'--I'
原因是我的重新建立基础的分支可能会破坏事情。如果它做得太多,而我又不能轻易修复它,那么我想继续使用旧分支。
在这种情况下,master分支实际上基于另一个存储库,并且距离原始存储库还有很长的路要走。我正在尝试将(H-I)分支恢复到原始master分支的最新版本。
答案 0 :(得分:6)
只需在其上创建一个新分支即可。
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