如何将Git提交移动到另一个分支并在原始分支中将其删除?

时间:2018-08-17 08:38:08

标签: git

我现在在分支中有以下提交:

enter image description here

我错误地开始了B分支的工作,并在A分支中提交了b581515ef

这3个提交应该在分支B中,而不是在分支A中。所有3个提交都已推送到我的远程Git服务器。

我的问题

如何将这3个提交移至分支B并在分支A中将其删除?对于分支B,我希望它从分支A中的提交97b分支出来。

2 个答案:

答案 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

您还需要在此处强制推动。

相关问题