有没有办法将单个提交从一个分支重新定位到另一个分支?
我有这样的分支结构:
-- -- -- -- -- (Master)
\
-- -- -- -- -- XX (Feature-branch)
我所要做的就是将Feature-branch
的最后一次提交重新设置为主提交,并回滚Feature-branch
one commit。
-- -- -- -- -- XX (Master)
\
-- -- -- -- -- (Feature-branch)
我该怎么做?
发布于 2013-02-01 05:46:51
你可以挑选XX来掌握。
git checkout master
git cherry-pick <commit ID of XX>
并使用git重置从feature分支中删除最后一次提交。
git checkout Feature-branch
git reset --hard HEAD^
发布于 2013-02-01 05:46:00
git rebase --onto master branch~1 branch
这就是说“在主分支的顶端重新设定上一次分支和分支之间的提交范围(即XX提交)”。
在此操作之后,提交XX
上的branch
提示将被移动,因此您希望使用以下命令将其重新设置
git checkout branch
git reset --hard branch@{1}^
它表示“将分支提示重置为在其先前状态之前的提交”
所以选择樱桃是一个更简单的解决方案。
发布于 2017-10-27 03:53:15
实际上,这很容易做到。解决方案是做一个交互式的rebase,并“丢弃”所有你不想包含在rebase中的提交。
git rebase -i <target_branch>
,其中target_branch
是您要重设基地的分支
然后,您将编辑打开的文件,并对您想要的提交进行pick
,对您不想带来的所有提交执行drop
(简称为d
)。
https://stackoverflow.com/questions/14635672
复制相似问题