有没有办法将一个提交从一个分支重新绑定到另一个分支?
我有这个分支结构:
-- -- -- -- -- (Master)
\
-- -- -- -- -- XX (Feature-branch)
Run Code Online (Sandbox Code Playgroud)
我想要做的就是将最后一次提交改为Feature-branch
master并回滚Feature-branch
一次提交.
-- -- -- -- -- XX (Master)
\
-- -- -- -- -- (Feature-branch)
Run Code Online (Sandbox Code Playgroud)
我怎么做?
tew*_*ewe 103
你可以樱桃挑XX来掌握.
git checkout master
git cherry-pick <commit ID of XX>
Run Code Online (Sandbox Code Playgroud)
并使用git reset从功能分支中删除最后一次提交.
git checkout Feature-branch
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)
Cha*_*esB 85
git rebase --onto master branch~1 branch
Run Code Online (Sandbox Code Playgroud)
这说"在主分支的尖端上重新设置分支前的分支和分支(即XX提交)之间的提交范围"
在此操作之后,branch
提示会移动提示XX
,因此您需要将其设置为
git checkout branch
git reset --hard branch@{1}^
Run Code Online (Sandbox Code Playgroud)
其中说"在之前的状态之前将分支提示重置为提交"
所以樱桃选择是一个更简单的解决方案......
hrd*_*rbl 38
实际上这很简单.解决方案是进行交互式rebase并"删除"您不希望包含在rebase中的所有提交.
git rebase -i <target_branch>
target_branch
你想要转移到的分支在哪里
然后,您将编辑打开的文件和pick
您想要的提交,以及drop
(或d
简称)您不想带来的所有提交.