Skip to main content

Импорт внешнего репозитория Git с помощью командной строки

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

Прежде чем приступить к работе, убедитесь, что выполнены следующие условия:

  • Ваше имя пользователя GitHub
  • URL-адрес клона для внешнего репозитория, например, https://external-host.com/user/repo.git или git://external-host.com/user/repo.git (возможно, с префиксом user@ перед доменным именем external-host.com)

В качестве демонстрационного примера мы будем использовать следующие параметры:

  • Внешняя учетная запись с именем extuser
  • Внешний узел Git с именем https://external-host.com
  • Личная учетная запись GitHub с именем ghuser
  • Репозиторий на GitHub.com с именем repo.git
  1. Создайте репозиторий на GitHub. Вы импортируете внешний репозиторий Git в этот новый репозиторий.

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

    $ git clone --bare https://external-host.com/EXTUSER/REPO.git
    # Makes a bare clone of the external repository in a local directory
    
  3. Отправьте локально клонированный репозиторий в GitHub с помощью параметра "mirror", который гарантирует, что все ссылки, такие как ветви и теги, будут скопированы в импортированный репозиторий.

    $ cd REPO.git
    $ git push --mirror https://github.com/USER/REPO.git
    # Pushes the mirror to the new repository on GitHub.com
    
  4. Удалите временный локальный репозиторий.

    cd ..
    rm -rf REPO.git
    

Если импортируемый репозиторий содержит большие файлы, может возникнуть предупреждение или ошибка. Дополнительные сведения о больших файлах и их управлении см. в разделе "Сведения о больших файлах на GitHub".

Дополнительные материалы