Зеркальный гитхуб на Гитлаб


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.)

Ответы:


6

GitLab теперь имеет эту встроенную функцию!
Начиная с GitLab EE 8.2 это поддерживается . Ура!

Вытащить из удаленного репозитория

Вы можете настроить хранилище так, чтобы его ветки, теги и коммиты автоматически обновлялись из вышестоящего хранилища.
...

При создании нового проекта вы можете включить зеркальное отображение хранилища, когда решите импортировать хранилище из «Любого хранилища по URL». Введите полный URL-адрес репозитория Git, из которого вы хотите извлечь данные, и установите флажок « Зеркальный репозиторий» .

GitLab автоматическое зеркалирование

Для существующего проекта вы можете настроить вытягивание зеркала, посетив « Настройки » Settings «Репозиторий» вашего проекта и выполнив поиск в разделе «Извлечение из удаленного хранилища». Установите флажок «Зеркальное хранилище» и нажмите « Сохранить изменения» внизу.
...


1
Их пример использует gitlab, я точно следовал ему, за исключением того, что заменил эту часть на Github, и обновление никогда не закончится ...
MarcusJ

@MarcusJ Точно так же здесь, вы нашли решение?
MemphiZ

Прошло много времени с тех пор, как я должен был это сделать, но я думаю, что я использовал ssh url в формате ssh: //git@gitlab.com: UserName: RepoName.git
MarcusJ

Я только что сделал эту работу, переход с github на gitlab легко, если ваш репозиторий общедоступен, просто вставьте этот URL в настройках gitlab:, https://github.com/yourGithubUserName/repoName.gitзатем выберите метод Password в поле со списком и оставьте поле
ввода

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 для обновления репо


Как настроить в gitlab?
user186107

2
Обновите свой вопрос, указав детали, которые вы запрашивали, что вы пробовали и в чем именно заключается проблема.
Дрю Хури

0

Вы можете сделать это с помощью заданий cron .

В вашем терминале введите crontab -e(для редактирования вашего crontab) и добавьте новую строку внизу со следующим.

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

Он будет запускать клон каждый день в полночь.


Надеюсь это инкрементные обновления. нет необходимости скачивать все снова.
user186107
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.