Викинг Git-хранилища от GitHub до GitLab

Предположим, что я хотел бы реализовать исправление для проекта кого-то другого. Этот проект находится на GitHub.

Я мог бы создать вилку на GitHub и реализовать исправление.

Однако я хотел бы создать свою вилку на GitLab, а не на GitHub.

Это возможно? Как?

Я прочитал эту статью: https://about.gitlab.com/2016/12/01/how-to-keep-your-fork-up-to-date-with-its-origin/

Во всяком случае, я не уверен, что мне делать в моем случае.

  • Должен ли я просто создать вилку на GitLab проекта от GitHub?
  • Или мне нужно создать зеркало на GitLab проекта от GitHub?
  • Или мне нужно создать зеркало на GitLab, а затем развить зеркало?
  • Или я должен делать что-то совершенно другое?

Каков правильный подход.

Благодарю.

ОБНОВИТЬ

Зеркалирование репозитория на GitLab не имеет смысла. Я могу создать зеркало репозитория MY GitHub в GitLab, но я не могу создать зеркало репозитория кого-то другого.

https://docs.gitlab.com/ee/workflow/repository_mirroring.html

Это то, что я сделал до сих пор:

Я клонировал оригинальный проект GitHub на свою локальную машину. Я исправил исправление для новой ветки в моем локальном репозитории. Я создал пустой проект на GitLab. Я установил источник в моем локальном репозитории для этого пустого проекта на GitLab и нажал обе ветки в GitLab. Я установил upstream в моем локальном репозитории в репозиторий GitHub.

Когда я хочу получить новые коммиты из исходного репозитория GitHub в репозиторий GitLab (т.е. синхронизировать репозитории), я могу сделать это, используя свое местное репо в качестве промежуточного шага. Тем не менее, нет прямой связи между репо на GitHub и репо на GitLab. Правильно ли настроена моя установка? Есть ли разница, если я делаю вилку на GitHub?

Ответ 1

Если вы просто хотите отслеживать изменения, сначала создайте пустой репозиторий в GitLab (или что-нибудь еще, что вы можете использовать) и клонируйте его на свой компьютер.

Затем добавьте проект GitHub как " восходящий " пульт с:

git remote add upstream https://github.com/user/repo

Теперь вы можете извлечь и вытащить из восходящего потока, если будут какие-либо изменения. (Вы также можете нажать или слить его, если у вас есть права доступа.)

git pull upstream master

Наконец, вернитесь в свой собственный репозиторий GitLab:

git push origin master

Если вы не хотите вручную вытягивать исходное /push-происхождение, GitLab предлагает функцию зеркалирования в настройках => Репозиторий => Зеркалирование репозиториев.

Ответ 2

Возможно создание приватного хранилища github.

  1. Нажмите новый проект
  2. Выберите Импорт
  3. Выберите github
  4. OAuth2 используется для аутентификации и автоматического создания приложения gitlab
  5. Выберите проект для вилки

^ Я только что сделал это с частным репо на github, импортированным успешно (inc branch и т.д.). Импортированный проект автоматически сохраняется конфиденциально;)

Ответ 3

Я действительно не понимаю, как GitLab подходит сюда.

Если проект находится в GitHub, они, вероятно, используют запросы на выбор GitHub, поэтому перенос их проекта на GitLab не пригодится.

Просто разворачивайте их хранилище GitHub и делайте запрос на загрузку GitHub, если вы хотите внести свой вклад. Если вы по какой-то причине абсолютно не можете внести свой вклад в GitHub, я полагаю, вы могли бы создать патч и отправить его на адрес сопровождающего.

Ответ 4

Только в браузере:

  1. Создайте новый проект в Gitlab (просто пустой проект с именем в порядке)
  2. Зайдите в Настройки → Репозиторий
  3. Введите URL GitHub в разделе "Зеркальное отображение репозиториев".
  4. Убедитесь, что "Направление зеркала" это "Потяните"
  5. Нажмите кнопку "Зеркальный репозиторий"
  6. Нажмите значок синхронизации рядом с появившейся записью.