Предположим, я хочу внести исправление в чужой проект. Этот проект находится на 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, наверное, не имеет смысла. Я могу создать зеркало моего репозитория GitHub на GitLab, но я не могу создать зеркало другого репозитория.

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

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

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

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

Cimlman

Ответов: 4

Ответы (4)

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

Then add the GitHub project as the "upstream" remote with:

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

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

git pull upstream master

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

git push origin master

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

Вместо разветвления вы можете импортировать любой общедоступный репозиторий GitHub, используя только веб-интерфейс:

  1. На панели инструментов GitLab щелкните Новый проект
  2. Перейти на вкладку Импорт проекта
  3. Нажмите кнопку Репо по URL
  4. Заполните «URL-адрес репозитория Git» и оставшиеся поля проекта
  5. Щелкните Создать проект, чтобы начать процесс импорта
  6. После завершения вы будете перенаправлены на ваш недавно созданный проект

Недавно использовал эту технику, и она работает в любом публичном репозитории даже без учетной записи GitHub. См. Источник информации на странице GitLab docs.

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

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

Возможен форк частного репозитория github.

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

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

2022 WebDevInsider