原理比較簡單,就是讓開源代碼的遠程倉指向要push的遠程倉,之後再提交.
以x264代碼爲例
1. 下載x264代碼
git clone https://code.videolan.org/videolan/x264.git
2. 查看x264代碼遠程指向
$git remote -v
origin https://code.videolan.org/videolan/x264.git (fetch)
origin https://code.videolan.org/videolan/x264.git (push)
默認是指向 videolan 的git倉,我們是沒有權限提交的
3. 建立新的遠程執行
git remote add tmp ssh://review.xxxxxx.cn:xxxxx/xxx/xxx/x264
4. 查看新的指向
已經指向了我們的遠程倉
5. push
git push tmp HEAD:refs/for/master (通過gerrit鏈接提交,之後在gerrit上 +2 並merge)
git push tmp HEAD:refs/heads/master (直接merge,不走gerrit的方式)