一、场景与问题
在实际开发中我们一般都是同一主分支下有多个子分支,那假如我有主分支下有测试分支A和本地分支B,我在本地更改代码后commit到了分支B中,分支B自测没问题后,我需要将commit到B的内容推给分支A,这样该如何处理呐?
二、解决步骤
①我们可以先通过 git log 命令,查看(记录)需要转移commit提交的hash数值
例如:zyl分支下-ic卡校验的提交
分支hash值:b7c2befb...(一般只记录前8位即可)
②然后我们切换到目标分支
$ git checkout 分支A
③通过git自带的cherry-pick命令转移
$ git cherry-pick b7c2befb
*注意:
1)如果有多个commit要移到 只需放多个commit的hash值即可
例如 $ git cherry-pick b7c2befb 3c9063b6
2) cherry-pick处理后原分支的commit提交依旧在,准确说这个命令 是复制某个commit到其它分支,而不是移动。
如果需要清理掉本地分支C中的commit提交可以使用git reset
$ git checkout master
Switched to branch 'master'
$ git reset --hard HEAD~1
HEAD is now at 776f8ca Change about title and delete error page