您的位置:首页 > 其它

git cherry-pick相关介绍

2017-10-26 11:33 369 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: