如何将本地分支A中的多个本地提交推送到远程分支B并从本地分支A中清除它们?

How to push several local commits in local branch A into remote branch B and clear them from local branch A?

我在本地检查了一些分支。我对它进行了全面的更改。就在我准备将它们推送到远程仓库时,我意识到,我在错误的分支上工作。

我需要对 'move' 那些在本地和远程提交到另一个分支的提交进行排序,即:

我有:

最后我需要:

我是 git 的新手,不是专业开发人员,所以 git-push(1) 在没有进一步研究的情况下对我没有帮助。

我遇到了这个 post:git push command for pushing a local commit to a different remote branch

它表明:

git push ssh://company.com:29418/platform/vendor/com-proprietary/ship/ftm 72bc75e409e50dcad29bd790b4b6478dc6668f12:jb_mr2

显然,jb_mr2 部分我更改为我的分支 B 所调用的任何内容,但是我从哪里获得其余数字,以及我通过什么方式摆脱分支 A 上的更改?

朋友帮了我,我们弄明白了:

$(A) git log 
- 1236 more new files need to check 
- 1235 new files need to check 
- 1234 checked files ready for project 
$(A) git checkout B 
$(B) git cherry-pick 1235
$(B) git cherry-pick 1236 
$(B) git checkout A 
$(A) git reset --hard 1234 

显然这些数字要长得多而且没有按顺序排列,因为它们是校验和。

这对我来说效果很好,因为我 只需要处理几个提交 。它们是按顺序 最后提交

如果以后有不应该移动的提交,或者如果有很多提交,Yawar 上面提到的 answer 似乎值得一试。