Skip to main content

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

Если инструмент импортирования GitHub не подходит для ваших целей, например если существующий код размещен в частной сети, рекомендуется импортировать с помощью командной строки.

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

  • Ваше имя пользователя 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.