将github镜像到Gitlab


11

在本地gitlab中,我创建了一个nova项目的副本(https://github.com/openstack/nova)。

我如何保持本地Nova仓库与github同步,可能每小时或每天更新一次?

我想要一个类似于此处为bitnami描述的解决方案:http ://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub

(我使用Devstack来安装Openstack。)

Answers:


6

GitLab现在内置了此功能!
从GitLab EE 8.2开始支持万岁!

从远程存储库中提取

您可以将存储库设置为自动从上游存储库更新其分支,标记和提交。
...

创建新项目时,当您选择从“按URL进行任何回购”导入存储库时,可以启用存储库镜像。输入要从中提取的Git存储库的完整URL,然后单击“ 镜像存储库”复选框。

GitLab自动镜像

对于现有项目,可以通过访问项目的“设置”➔“存储库”并搜索“从远程存储库中提取”部分来设置镜像拉取。选中“镜像存储库”框,然后点击底部的“ 保存更改 ”。
...


1
他们的示例使用gitlab,除了用Github替换了该部分之外,我完全按照它进行操作,而更新的工作永远都没有完成……
MarcusJ

@MarcusJ在这里完全一样,您找到解决方案了吗?
MemphiZ

自从我不得不这样做以来已经有一段时间了,但是我认为我所做的是以ssh://git@gitlab.com:UserName:RepoName.git的格式使用ssh url
MarcusJ,

我刚刚完成了这项工作,如果您的仓库是公开的,从github到gitlab的操作很简单,只需将该URL粘贴到gitlab设置中:https://github.com/yourGithubUserName/repoName.git,然后在组合框中选择Password方法,并将密码文本框留为空白
knocte

4

如果您永远不需要本地提交,则可以使用以下方法:

使用以下命令克隆仓库--mirror

git clone --mirror https://github.com/openstack/nova.git

然后,在cronjob中,您需要每小时进行一次更新:

0 * * * * cd /path/to/nova.git && git fetch

--mirror建立在这样一种方式,后续提取将更新所有本地裁判,所以你不需要在合并的变化refspecs。当然,这是否意味着推到回购的提交将丢失。


这似乎并不能解决问题,那就是在GitLab中获得一面镜子。
肯·威廉姆斯



0

您可以使用cron作业执行此操作。

在终端中键入crontab -e(以编辑crontab),并在底部添加以下内容的新行。

* 0 * * * git clone ssh://username@hostname:port/repo

它将每天在午夜运行一个克隆。


我希望它是增量更新。无需再次下载全部。
user186107
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.