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

如何将Git提交移动到另一个分支并在原始分支中删除它们?,git,Git,我现在在分支机构中有以下承诺: 我错误地开始了分支机构B的工作,并在分支机构A中提交了b58、151和5ef 这3个提交应该在分支B中,而不是在分支A中。所有3个提交都已推送到我的远程Git服务器 我的问题 如何将这3个提交移动到分支B并在分支A中删除它们?对于分支B,我希望它从分支A中的提交97b分支。我现在创建分支B,然后将分支A重置为您希望的状态,然后您需要强制将其推送到远程服务器 git checkout -b branchB git checkout branchA git rese

我现在在分支机构中有以下承诺:

我错误地开始了分支机构B的工作,并在分支机构A中提交了
b58
151
5ef

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

我的问题


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

我现在创建分支B,然后将分支A重置为您希望的状态,然后您需要强制将其推送到远程服务器

git checkout -b branchB
git checkout branchA
git reset --hard HEAD~3
git push -f

始终使用git日志和git状态检查状态。

如果分支B不存在,并且您在分支A上没有其他工作,您可以编写

git checkout a
git branch b
git reset --hard 97b
这将创建指向当前A的B,然后将A设置为97b。请注意,如果推A,则需要通过执行
git push origin+A
来强制推

如果您在分支B上有其他工作,您可以这样做

git checkout b
git cherry-pick 5ef 161 b58b
git checkout a
git reset --hard 97b

您还需要在此处进行强制推送。

使用樱桃拾取功能。因此,您可以选择提交并将它们合并到正确的分支中。但您还应该删除错误分支中的提交