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
实际问题
在本地 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
相关文章推荐
- Git知识总览(四) git分支管理之rebase 以及 cherry-pick相关操作
- git cherry-pick
- git cherry-pick
- git cherry-pick. 如何把已经提交的commit, 从一个分支放到另一个分支
- git入门-----其它的常用命令(config、cherry-pick)
- Git cherry-pick 使用总结
- git cherry-pick and git cherry
- Git本地操作相关介绍
- git cherry-pick
- git cherry-pick与git cherry命令详解
- git如何合并某次提交命令到分支--git cherry-pick <commit id>
- git rebase / cherry-pick / merge
- git将一笔提交cherry pick到不同分支的简单方法
- git(十四)-git cherry-pick
- git合并——衍合于挑拣(cherry-pick)——只合并某个commit
- git cherry-pick. 如何把已经提交的commit, 从一个分支放到另一个分支
- git cherry-pick 小结
- git merge vs rebase vs cherry-pick
- Git 的 cherry-pick 功能
- 详解Git cherry-pick