[英]Move a commit to independent branch from master
我已经分支了错误的分支,我想将提交移动到主服务器而不是功能分支。 尝试使用feat2的rebase master,但我得到“当前的分支...是最新的”
基本上我想离开这个
feat2 F
/
feat1 C - D - E
/
master A - B
对此
feat1 C - D - E
/
master A - B
\
feat2 F
当然F不依赖于任何CDE
编辑:强制rebase显示不仅在feat2上考虑了F,而且来自master的所有提交都被重新命名(CDEF)。 我需要的是一种告诉rebase在feat1“切割”的方法。
尝试使用git rebase --onto
:
git checkout feat2
git rebase --onto E B
这表示在提交B
之上重新定义其父E
为E
的提交F
这使得feat2
看起来如你所愿, F
提交直接位于B
顶部。
处理这个问题的另一个简单方法是从master
分支一个新的功能2分支feat2new
,然后樱桃选择提交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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.