GitHub上的代码仓库如何完整地复制到GitLab,并且保留完整的git提交log?

问题

当我们想把GitHub上某个代码仓库整体放入到我们私有部署的GiLab上时,而且需要保留完整的git提交记录已经所有分支信息,该如何操作呢?

方法

(1). 先从GitHub上clone仓库(注意使用--bare参数):

# 裸仓库克隆(包含所有分支和标签)
git clone --bare https://github.com/项目.git

(2). 进入克隆的仓库目录:

# 进入克隆的仓库目录
cd 项目名.git

(3). 在 GitLab 创建空项目(注意是空项目,不包含任何文件)。

(4). 推送所有引用到 GitLab(注意参数):

# 推送所有引用到 GitLab(需提前在 GitLab 创建空项目)
git push --mirror https://gitlab.com/项目名.git