在某些场景下,需要同步远程仓库到本地仓库,同时保留远程仓库和本地仓库的代码提交记录。例如同步GitHub上的仓库到本公司的GitLab仓库。
实现方式
在公司GitLab上创建两个仓库,一个用于保存远程仓库的代码,一个用于内部修改的代码。
定期从GitHub上下载仓库镜像,同步到公司远程仓库,然后设置公司远程仓库到另外一个仓库的同步任务,从而实现GitHub上更新记录同步到内部仓库。
具体步骤
在GitLab上创建两个仓库,一个为aaa_base,一个为aaa。aaa_base用于和GitHub仓库代码保持一致,并去掉所有分支的保护权限。
首先需要下载GitHub上的仓库镜像
git clone --bare https://github.com/aaa.git
提交到公司GitLab上一个GitHub代码备份仓库
git push --mirror https://gitlab.com/aaa_base.git
设置备份仓库到内部仓库的同步任务