我已经分支了错误的分支,我想将提交移动到主服务器而不是功能分支。尝试使用feat2的rebase master,但我得到了#34; Current branch ...是最新的"
基本上我想从这个
开始feat2 F
/
feat1 C - D - E
/
master A - B
到此
feat1 C - D - E
/
master A - B
\
feat2 F
当然F不依赖于任何C-D-E
编辑:强制使用rebase表明不仅在feat2上考虑了F,而且来自master的所有提交都被重新命名(C-D-E-F)。我需要的是一种告诉rebase to" cut"在feat1。
答案 0 :(得分:1)
尝试使用git rebase --onto
:
git checkout feat2
git rebase --onto E B
这表示在提交F
之上重新设置其父E
的提交B
。这会使feat2
看起来如您所愿,F
提交会直接位于B
之上。
处理此问题的另一种简单方法是从feat2new
分支新功能2分支master
,然后选择提交F
。在此之后,您可以删除旧的feat2
分支并将feat2new
重命名为feat2
:
git checkout master
git checkout -b feat2new
git cherry-pick <SHA-1 for commit F>
现在删除feat2
,然后重命名:
git branch -d feat2
git branch -m feat2new feat2