前言
接到一个需求,便从dev分支拉了一个分支出来开发,开发完后,通过gitlab界面把代码合并至dev.产生了两个commit。其中一个是merge。
为什么会产生一个merge的commit?
这个需求需要单独上线,所以不能从dev直接把代码全部合到master。
最开始我以为需要将这两个commit都合到master。
采用命令
git cherry-pick (commitid1..commitid100]
cherry-pick是个啥?
最后报错了。
error: Commit 6d3ab0967c50cb55381f7a40d47bfadbf82206a0 is a merge but no -m option was given.
fatal: cherry-pick failed
merge commit合不过去。
最后只合第一个commit.
git cherry-pick commit1
报错,代码冲突。
error: could not apply 655528c... 升级openjdk
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
为什么cherry-pick会有冲突?
找到冲突的文件,并解决。
解决完冲突后,执行以下命令:
git add .
git cherry-pick --continue
git push oringin master
搞定。