git cherry-pick相关介绍

git cherry-pick 用于把另一个本地分支的commit修改应用到当前分支。
实际问题 
   在本地  master  分支上做了一个 commit  (  38361a68138140827b31b72f8bbfd88b3705d77a  ) , 如何把它放到 本地 old_adc 分支上? 
办法之一: 使用  cherry-pick .  根据git 文档:
Apply the changes introduced by some existing commits 
就是对已经存在的commit 进行apply (可以理解为再次提交)
简单用法
git cherry-pick <commit id>
例如:
$ git checkout old_adc
git   cherry-pick   38361a68
1. 如果顺利,就会正常提交。结果:
Finished one cherry-pick.
# On branch old_adc

# Your branch is ahead of 'origin/old_adc' by 3 commits.


如果整个分支要cherry-pick另外一个分支的代码:

1.下载代码

repo init -u ssh://gerrit.ccdomain.com:29418/git/android/platform/manifest--repo-url ssh://gerrit.ccdomain.com:29418/git/android/tools/repo --repo-branchzeusis-stable --no-repo-verify -q -b zs_master -mzeusis/MSM8976_OREO_20171019.xml --reference /home/mirror

repo sync -j16

2.获取log

repo forall -c "echo ==== &&pwd && git log --oneline --since "2017-10-19 13:44""> ~/log.txt

3.切换分支

repo forall -c "git checkout -bmsm8976_oreo_20171019 remotes/zsgit/msm8976_oreo_20171019"

4.cherry-pick

git cherry-pick commit-id(从旧到新进行cherry-pick)

如果有冲突使用gitcherry-pick --abort 记录有冲突的commit-id,发给开发人员,将已cherry-pick的活动push

5.push

git push zsgit HEAD:msm8976_oreo_20171019


猜你喜欢

转载自blog.csdn.net/yang_zhang_1992/article/details/78351769