原理比较简单,就是让开源代码的远程仓指向要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的方式)