需求
感谢 GFW,在编译 SONiC 开源项目的时候碰到很多源码下载不下来。因此有必要本地保存一份源码。
而且,有的源码下载下来,需要切换分支,因此需要完整保存该源码的镜像,包含所有的提交、分支和 tags。
本文以自建的 gitlab ce 服务器为例。目标:mirror https://anonscm.debian.org/cgit/pkg-dhcp/isc-dhcp.git 到本地的 gitlab 服务器。
方法一:命令行
很明显,这是一个很常见的需求,git 可以很快地做这个活。详见 Import an existing git project into GitLab?
- 在 gitlab ce 服务器上添加对应的仓库,比如
http://your_gitlab_url/sonic/isc-dhcp.git
- 下载 isc-dhcp 的源码到本地,
git clone https://anonscm.debian.org/cgit/pkg-dhcp/isc-dhcp.git --mirror
- 进入 isc-dhcp 源码根目录,执行以下两个命令:
- git remote add gitlab http://your_gitlab_url/sonic/isc-dhcp.git
- git push gitlab –mirror
- Bingo!!
1 | netadminb0230:~$ git clone https://anonscm.debian.org/cgit/pkg-dhcp/isc-dhcp.git --mirror - |
方法二:gitlab 使用 import project 创建新项目
详见 gitlab 图形界面,支持从 github / bitbucket / google code 等网站直接 import,也支持通过 URL 指定要 import 的 git 仓库。