我现在在分支中有以下提交:
我错误地开始了B分支的工作,并在A分支中提交了b58
,151
和5ef
。
这3个提交应该在分支B中,而不是在分支A中。所有3个提交都已推送到我的远程Git服务器。
我的问题
如何将这3个提交移至分支B并在分支A中将其删除?对于分支B,我希望它从分支A中的提交97b
分支出来。
答案 0 :(得分:1)
我现在将创建分支B,然后将分支A重置为您想要的状态,然后您将需要将其强制推送到远程服务器。
git checkout -b branchB
git checkout branchA
git reset --hard HEAD~3
git push -f
始终使用git log和git status检查状态。
答案 1 :(得分:0)
如果分支B不存在并且您在分支A上没有其他工作,则可以编写
git checkout a
git branch b
git reset --hard 97b
这将创建B指向当前A,然后将A设置为97b。请注意,如果您按A,则需要通过执行git push origin +a
来强制推送。
如果您在分支B上还有其他工作,可以做
git checkout b
git cherry-pick 5ef 161 b58b
git checkout a
git reset --hard 97b
您还需要在此处强制推动。