在本地 gitlab 中我创建了 project nova 的副本(https://github.com/openstack/nova)。
我如何使本地 nova repo 与 github 保持同步,每小时或每天更新一次?
我想要一个与这里描述的 bitnami 类似的解决方案: http://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub
(我使用 Devstack 安装 Openstack。)
答案1
GitLab现在已经内置此功能!
自 GitLab EE 8.2 起它得到支持。万岁!
从远程存储库拉取
您可以设置一个存储库,以自动从上游存储库更新其分支、标签和提交
。...创建新项目时,您可以在选择从“按 URL 导入任何存储库”时启用存储库镜像。输入要从中拉取的 Git 存储库的完整 URL,然后单击镜像仓库复选框。
(来源:gitlab.com)
对于现有项目,您可以通过访问项目的设置➔ 存储库并搜索“从远程存储库提取”部分。选中“镜像存储库”框并点击保存更改在底部。
...
答案2
如果你绝不需要本地提交,下面的方法可以起作用:
使用以下命令克隆 repo --mirror
:
git clone --mirror https://github.com/openstack/nova.git
然后在 cronjob 中执行以下每小时更新操作:
0 * * * * cd /path/to/nova.git && git fetch
设置--mirror
refspecs 的方式使得后续提取将更新所有本地引用,因此您不需要合并更改。当然,这意味着推送到该存储库的提交将丢失。
答案3
我写了一个项目,目的是向 GitLab 添加远程镜像。你可以在这里查看...
答案4
您可以使用cron 作业。
在您的终端类型中crontab -e
(编辑您的 crontab)并在底部添加以下内容的新行。
* 0 * * * git clone ssh://username@hostname:port/repo
它将在每天午夜运行一次克隆。