Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Дублирование репозиториев

Чтобы сохранить зеркало репозитория без создания вилки, можно выполнить специальную команду клонирования, а затем зеркальную передачу данных в новый репозиторий.

Перед отправкой исходного репозитория в новую копию или зеркальное отображение репозитория необходимо создать новый репозиторий на экземпляр GitHub Enterprise Server. В приведенных ниже примерах exampleuser/new-repository или exampleuser/mirrored — это зеркала.

Зеркало репозитория

  1. Откройте ТерминалТерминалGIT Bash.
  2. Создайте "чистый" клон репозитория.
    $ git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
  3. Отправьте зеркало в новый репозиторий.
    $ cd OLD-REPOSITORY.git
    $ git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
  4. Удалите временный локальный репозиторий, созданный ранее.
    $ cd ..
    $ rm -rf OLD-REPOSITORY.git

Зеркало репозитория, содержащего объекты Хранилище больших файлов Git

  1. Откройте ТерминалТерминалGIT Bash.
  2. Создайте "чистый" клон репозитория. Замените пример имени пользователя на имя пользователя или организации, которым принадлежит репозиторий, и замените пример имени репозитория на имя репозитория, который нужно дублировать.
    $ git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
  3. Перейдите к репозиторию, который вы только что клонировали.
    $ cd OLD-REPOSITORY.git
  4. Извлеките объекты Хранилище больших файлов Git репозитория.
    $ git lfs fetch --all
  5. Отправьте зеркало в новый репозиторий.
    $ git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
  6. Отправьте объекты Хранилище больших файлов Git репозитория в зеркало.
    $ git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
  7. Удалите временный локальный репозиторий, созданный ранее.
    $ cd ..
    $ rm -rf OLD-REPOSITORY.git

Зеркало репозитория в другом расположении

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

  1. Откройте ТерминалТерминалGIT Bash.

  2. Создайте "чистый" зеркальный клон репозитория.

    $ git clone --mirror https://HOSTNAME/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git
  3. Задайте вашему зеркалу расположение для отправки.

    $ cd REPOSITORY-TO-MIRROR
       $ git remote set-url --push origin https://HOSTNAME/EXAMPLE-USER/MIRRORED

    Как и в случае с "чистым" клоном, зеркальный содержит все удаленные ветви и теги, но все локальные ссылки будут перезаписаны при каждом извлечении, поэтому он всегда будет совпадать с исходным репозиторием. Задание URL-адреса для отправок упрощает отправку в зеркало.

  4. Чтобы обновить зеркало, получите обновления и отправьте их.

    $ git fetch -p origin
    $ git push --mirror