在本地建立一个local branch
repo start cherrypickbranchname .
然后git cherry-pick -x <commitid>
如果其中有冲突的话就是用我前面提到的meld工具。
meld *********.java(冲突的文件)
修改好文件以后需要git add. 然后git commit。这就完成一个change的cherrypick。
可以一次性在本地cherry pick n个change。
如果再cherry-pick过程中觉得当前的change不需要可以使用
git reset
git checkout .
这样就可以把当前的change舍弃。
如果已经再本地branch提了10个change,而我想把第5个change舍弃的话就用到git revert了。
当然我这里有review的网站,只需要把前面4个change先merge以后。
然后把剩下的5个change全部再cherrypick到另外新建的local branch,rebase已经merge的代码,然后再repo upload。
change的commit是
git fetch ssh://******.com:33333/platform/vendor/semc/packages/apps/gallery refs/changes/93/200893/5 && git cherry-pick FETCH_HEAD
其它命令:
repo download platform/vendor/semc/packages/apps/gallery 200893/5
git fetch ssh://******.com:29418/platform/vendor/semc/packages/apps/gallery refs/changes/93/200893/5 && git checkout FETCH_HEAD
git pull ssh:/******.com:29418/platform/vendor/semc/packages/apps/gallery refs/changes/93/200893/5
git fetch ssh://******.com:29418/platform/vendor/semc/packages/apps/gallery refs/changes/93/200893/5 && git format-patch -1 --stdout FETCH_HEAD