在本地建立一個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