Примечание. Если у вас есть проект, размещенный в другой системе управления версиями, можно автоматически импортировать проект в GitHub с помощью средства импортирования GitHub Importer. Дополнительные сведения см. в разделе О GitHub Importer.
Перед отправкой исходного репозитория в новую копию или зеркальное отображение репозитория необходимо создать новый репозиторий на GitHub.com. В приведенных ниже примерах exampleuser/new-repository
или exampleuser/mirrored
— это зеркала.
Зеркало репозитория
- Откройте ТерминалТерминалGIT Bash.
- Создайте "чистый" клон репозитория.
$ git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git
- Отправьте зеркало в новый репозиторий.
$ cd OLD-REPOSITORY.git $ git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
- Удалите временный локальный репозиторий, созданный ранее.
$ cd .. $ rm -rf OLD-REPOSITORY.git
Зеркало репозитория, содержащего объекты Хранилище больших файлов Git
- Откройте ТерминалТерминалGIT Bash.
- Создайте "чистый" клон репозитория. Замените пример имени пользователя на имя пользователя или организации, которым принадлежит репозиторий, и замените пример имени репозитория на имя репозитория, который нужно дублировать.
$ git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git
- Перейдите к репозиторию, который вы только что клонировали.
$ cd OLD-REPOSITORY.git
- Извлеките объекты Хранилище больших файлов Git репозитория.
$ git lfs fetch --all
- Отправьте зеркало в новый репозиторий.
$ git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
- Отправьте объекты Хранилище больших файлов Git репозитория в зеркало.
$ git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
- Удалите временный локальный репозиторий, созданный ранее.
$ cd .. $ rm -rf OLD-REPOSITORY.git
Зеркало репозитория в другом расположении
Если вы хотите отобразить репозиторий в другое расположение, а также получать обновления из исходного, можно клонировать зеркало и периодически отправлять изменения.
-
Откройте ТерминалТерминалGIT Bash.
-
Создайте "чистый" зеркальный клон репозитория.
$ git clone --mirror https://github.com/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git
-
Задайте вашему зеркалу расположение для отправки.
$ cd REPOSITORY-TO-MIRROR $ git remote set-url --push origin https://github.com/EXAMPLE-USER/MIRRORED
Как и в случае с "чистым" клоном, зеркальный содержит все удаленные ветви и теги, но все локальные ссылки будут перезаписаны при каждом извлечении, поэтому он всегда будет совпадать с исходным репозиторием. Задание URL-адреса для отправок упрощает отправку в зеркало.
-
Чтобы обновить зеркало, получите обновления и отправьте их.
$ git fetch -p origin $ git push --mirror