cherry-pick 精心挑选的意思,即可以从一个分支上挑选一个(或多个)修改,提交到当前分支上,不过 cherry-pick 只能是本地操作,即源分支上必须有的commit 才能 cherry-pick。遇到的情况可能是,源分支远程已经有提交了,但在本地的源分支并没有更新到最新,此时 cherry-pick 会出现错误,如:
这个错误信息表明没有指定的提交版本,即我的本地的源分支还是老代码,还没有更新到最新代码。那正确的步骤应该是这样的:
1,切换到源分支上,并且 pull 下最新的提交
git check xxx
git pull origin xxx
2,切回目标分支,然后执行 git cherry-pick commitid
git cherry-pick commitid
3,git push 进行提交
git push origin xxx
从网上搜索到,cherry-pick commitidX..commitidY 可以cherry-pick 连续的 commit,但这个并不包含 commitidX,即为:(commitidX, commitidY],若为实现[commitidX, commitidY] 则应该这样:git cherry-pick -x b8411338c7e^..46431c46c67