git cherry-pick 和 git merge

git cherry-pick

当前位于a分支,需要将b分支的某个(些)提交合并到a分支
合并一个commit
git cherry-pick commitId
合并多个commit
git cherry-pick commitId1 commitId2 commitId3
合并从commitA(不包括commitA)到commitB之间提交
git cherry commitA..commitB
合并从commitA(包括commitA)到commitB之间提交
git cherry commitA^..commitB
合并完需要git push,将修改推送到远端的a分支
(如果合并之后有冲突,那需要解决冲突后再提交)
远程仓库的a分支,会生成新的commitId,虽然提交的修改内容是一样的,但算做两个不同的提交。

参考:https://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html

扩展阅读(参考评论里的链接,全英文,没看懂。。):
cherry-pick的缺陷:https://devblogs.microsoft.com/oldnewthing/20180312-00/?p=98215
另一篇介绍cherry-pick的文章: https://www.atlassian.com/git/tutorials/cherry-pick

git merge

当前位于a分支,需要将b分支的所有提交合并到a分支
git merge branchB
合并完需要git push,将修改推送到远端的a分支
(如果合并之后有冲突,那需要解决冲突后再提交)
远程仓库的a分支,会增加合并之前b分支有而a分支没有的提交,且commitId是一样的。(这个和cherry-pick不一样)
(如果有冲突,还会增加一个合并冲突的提交)

练习git指令的在线网站: https://oschina.gitee.io/learn-git-branching/?demo

你可能感兴趣的:(git,git,github)