cherry-pick用于把A分支的提交,增加到B分支上,可以同时增加多个提交。建议从两个分支最后一个相同的版本状态开始,逐个cherry-pick。否则可能出现冲突。
git cherry-pick
git cherry-pick commit-id:git会自动根据commit-id查找所属分支,并把分支上该commit-id对应的提交内容增加到当前分支。
git cherry-pick commit1 commit2: 把commit1和commit2复制到当前分支
git cherry-pick branchName: 把branchName分支的最后一次提交增加到当前分支
--abort: 出现冲突时,放弃操作。
成功与冲突
比如dev分支按照时间顺序有3次提交,对应commit-id是commit1、commit2、commit3。当前在test分支,test分支最后一次提交与commit1时的状态一致。
出现冲突的情况
(1)如果commit2和commit3都修改了同一文件,那么cherry-pick commit3会出现冲突。
(2)如果commit3修改的文件,在commit1版本中不存在(说明是commit2中增加的),那么会出现冲突。
即当前分支中文件的状态与要cherry-pick的commit中文件状态,最多相差一次提交。
成功的情况
(1)git cherry-pick commit2
(2)当commit3中修改的文件,在commit2中都没有修改时,git cherry-pick commit3