我开始通过创建一个新的分支来开展项目masters
,git checkout -b MyBranch
然后我做了几次提交(尚未推送)。
我本应该从Secondary
分支开始。那么,我怎样才能使我的分支成为的子分支Secondary
,并将代码合并(这是正确的术语吗?)到Secondary
我的分支中,以便以后合并。那么我该如何修复它?
这是一份工作吗rebase
?我对git
术语仍然很困惑...
我开始通过创建一个新的分支来开展项目masters
,git checkout -b MyBranch
然后我做了几次提交(尚未推送)。
我本应该从Secondary
分支开始。那么,我怎样才能使我的分支成为的子分支Secondary
,并将代码合并(这是正确的术语吗?)到Secondary
我的分支中,以便以后合并。那么我该如何修复它?
这是一份工作吗rebase
?我对git
术语仍然很困惑...
在您的场景中,
git merge
将会git rebase
解决问题,但是方式却截然不同。Git 合并
如果您决定合并
MyBranch
到Secondary
,您的历史看起来将不那么线性,而且有点混乱。您将有一个分支 (MyBranch
) 源自masters
,除了带来针对 的更改外Secondary
,还会带来来自 的(可能不需要的)更改masters
。合并方法不仅会使 上出现不必要的更改
Secondary
,还会使您的历史记录看起来更加错综复杂且难以阅读。这绝对不是从您的情况中恢复的最佳方法。Git 变基
另一方面,git rebase 可能就是您正在寻找的,因为您可以使用
Secondary
该--onto
选项移植您想要的提交集。Git Cherry-Pick
另一种方法是使用命令,基本上在分支出来的辅助分支 ( ) 上
cherry-pick
重写masters
和之间的提交。然后,强制删除,最后重命名为。MyBranch
MyBranch2
Secondary
MyBranch
MyBranch2
MyBranch