Упражнение. Отправка проекта в GitHub

Завершено

Репозитории можно импортировать в GitHub с помощью GitHub Importer, командной строки или внешних средств миграции.

О GitHub Importer

Если исходный код находится в Subversion, Mercurial, системе управления версиями Team Foundation (TFVC) или другом репозитории GIT, его можно переместить в GitHub с помощью GitHub Importer. GitHub Importer — инструмент для быстрого импорта в GitHub репозиториев исходного кода, включая фиксации и журнал изменений.

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

Действие импорта Subversion Mercurial TFVC Git
Проверка подлинности в удаленном репозитории X X X X
Обновление атрибута автора фиксации X X X
Перемещение больших файлов в Git Large File Storage X X X
Удаление больших файлов из репозитория X X X

Импорт репозитория с помощью GitHub Importer

Если проект размещен в другой системе управления версиями, можно автоматически импортировать его в GitHub с помощью средства GitHub Importer. GitHub Import не подходит для всех импортов. Например, если существующий код размещен в частной сети, наш инструмент не может получить к нему доступ. В этих случаях рекомендуется импортировать с помощью командной строки для репозиториев Git или внешнего средства миграции исходного кода для проектов, импортированных из других систем управления версиями.

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

В репозиториях и отдельных файлах применяются ограничения на размер. Дополнительные сведения см . в GitHub о больших файлах.

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

  1. В правом верхнем углу любой страницы выберите +и выберите "Импортировать репозиторий".

    Снимок экрана: кнопка импорта репозитория.

  2. В поле "URL-адрес клонирования старого репозитория" введите URL-адрес проекта, который требуется импортировать.

    Снимок экрана: текстовое поле старого URL-адреса репозитория.

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

    Снимок экрана: имя нового владельца импортируемого репозитория.

  4. Укажите, должен ли новый репозиторий быть общедоступным или частным. Дополнительные сведения см. в разделе "Настройка видимости репозитория".

    Снимок экрана: выбор общедоступного или частного репозитория.

  5. Просмотрите введенные сведения и нажмите кнопку "Начать импорт".

    Снимок экрана: кнопка запуска импорта репозитория.

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

    Снимок экрана: расположение для ввода старых учетных данных репозитория.

  7. Если в клонируемом URL-адресе старого проекта размещено несколько проектов, выберите проект, который вы хотите импортировать, а затем нажмите кнопку "Отправить".

    Снимок экрана: выбор проектов по тому же URL-адресу в средстве импорта проектов.

  8. Если проект содержит файлы размером более 100 МБ, выберите, следует ли импортировать большие файлы с помощью хранилища больших файлов Git, а затем нажмите кнопку "Продолжить".

    Снимок экрана: файлы, подходящие для использования в средстве импорта Git LFS.

После полного импорта репозитория вы получите сообщение электронной почты.

Обновление атрибута автора фиксации с помощью GitHub Importer

Во время импорта можно сопоставить фиксации в репозитории с учетной записью GitHub автора фиксации. Средство GitHub Importer ищет пользователей GitHub, адреса электронной почты которых соответствуют авторам фиксаций в импортируемом репозитории. Затем вы можете связать фиксацию с автором, используя адрес электронной почты автора или его имя пользователя GitHub.

Обновление авторов фиксации

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

  1. После импорта репозитория на странице состояния импорта выберите "Сопоставление авторов".

    Снимок экрана: кнопка

  2. Рядом с автором, сведения о которых вы хотите обновить, нажмите кнопку "Подключить".

    Снимок экрана: процесс подключения автор фиксации.

  3. Введите адрес электронной почты автора или его имя пользователя GitHub, а затем нажмите клавишу ВВОД.

Связывание фиксаций с пользователем GitHub с общедоступным адресом электронной почты

Если автор фиксации в импортированном репозитории имеет учетную запись GitHub, связанную с адресом электронной почты, который они использовали для создания фиксаций, и они не задают свой адрес электронной почты фиксации как частный. Затем GitHub Importer соответствует адресу электронной почты, связанному с фиксацией, к общедоступному адресу электронной почты, связанному с учетной записью GitHub, и атрибуту фиксации учетной записи GitHub.

Связывание фиксаций с пользователем GitHub без общедоступного адреса электронной почты

Если автор фиксации в импортированном репозитории не задает общедоступный адрес электронной почты в профиле GitHub или задает свой адрес электронной почты фиксации как частный. Затем GitHub Importer может не соответствовать адресу электронной почты, связанному с фиксацией с учетной записью GitHub.

Автор фиксации может устранить эту проблему, задав свой адрес электронной почты как закрытый. Затем их фиксации приписываются <username>@users.noreply.github.com, а импортированные фиксации связаны с учетной записью GitHub.

Связывание фиксаций с помощью адреса электронной почты

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

Если у автора нет учетной записи GitHub, GitHub Importer атрибутирует свои фиксации на адрес электронной почты, связанный с фиксациями.

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

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

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

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

Для демонстрации мы используем:

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

Выполните следующие действия, чтобы импортировать внешний репозиторий:

  1. Создайте репозиторий на сайте GitHub. Вы импортируете внешний репозиторий Git в этот новый репозиторий.

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

    $ git clone --bare https://external-host.com/ext-user/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/ghuser/repo.git
    #Pushes the mirror to the new repository on GitHub.com 
    
  4. Удалите временный локальный репозиторий.

    $ cd ..
    $ rm -rf repo.git 
    

Добавление локально размещенного кода в GitHub

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

GitHub CLI — это средство с открытым кодом для работы с GitHub из командной строки компьютера. GitHub CLI может упростить процесс добавления существующего проекта в GitHub с помощью командной строки. Дополнительные сведения о интерфейсе командной строки GitHub см . в GitHub CLI.

Добавление локального репозитория в GitHub с помощью GitHub CLI

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

  1. В командной строке перейдите в корневой каталог проекта.

  2. Инициализируйте локальный каталог как репозиторий Git.

    git init -b main
    
  3. Выполните подготовку и фиксацию всех файлов проекта.

    git add . && git commit -m "initial commit"
    
  4. Чтобы создать репозиторий для проекта на GitHub, используйте gh repo create subcommand. При появлении запроса выберите Отправить существующий локальный репозиторий в GitHub и введите нужное имя репозитория. Если вы хотите, чтобы проект принадлежал организации, а не вашей учетной записи пользователя, укажите имя организации и имя проекта с помощью organization-name/project-name.

  5. Следуйте интерактивным инструкциям. Чтобы добавить удаленный и отправить репозиторий, подтвердите да , когда будет предложено добавить удаленный и отправить фиксации в текущую ветвь.

  6. Кроме того, чтобы пропустить все запросы, укажите путь к репозиторию с флагом --source и передайте флаг видимости (--public, --private или --internal). Например, gh repo create --source=. --public. Укажите удаленный репозиторий с флагом --remote. Чтобы отправить фиксации, передайте флаг --push. Дополнительные сведения о возможных аргументах см. в руководстве по интерфейсу командной строки GitHub.

Добавление локального репозитория в GitHub с помощью GIT

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

  1. Создайте репозиторий на сайте GitHub.com. Чтобы избежать ошибок, не инициализировать новый репозиторий с помощью README, лицензии или gitignore files. Эти файлы можно добавить после отправки проекта в GitHub.

    Снимок экрана: создание нового репозитория.

  2. Откройте Git Bash.

  3. Измените текущий рабочий каталог на локальный проект.

  4. Инициализируйте локальный каталог как репозиторий Git.

    $ git init -b main
    
  5. Добавьте файлы в новый локальный репозиторий. Эта команда также выполняет их для первой фиксации.

    $ git add .
    # Adds the files in the local repository and stages them for commit. To unstage a file, use 'git reset HEAD YOUR-FILE'.
    
  6. Зафиксируйте файлы, которые выполняются в локальном репозитории.

    $ git commit -m "First commit"
    # Commits the tracked changes and prepares them to be pushed to a remote repository. To remove this commit and modify the file, use 'git reset --soft HEAD~1' and commit and add the file again.
    
  7. В верхней части репозитория на странице быстрого установки GitHub.com нажмите кнопку "Копировать", чтобы скопировать URL-адрес удаленный репозиторий.

    Снимок экрана: копирование URL-адреса удаленного репозитория на странице быстрой настройки

  8. В командной строке добавьте URL-адрес для удаленный репозиторий. Локальный репозиторий отправляется в это расположение.

    $ git remote add origin <REMOTE_URL> 
    # Sets the new remote
    $ git remote -v
    # Verifies the new remote URL
    
  9. Отправьте изменения в локальном репозитории на GitHub.com.

    $ git push origin main
    # Pushes the changes in your local repository up to the remote repository you specified as the origin
    

Средства миграции исходного кода

Для переноса проектов в GitHub можно использовать внешние средства. Мы рекомендуем использовать GitHub Importer для импорта проектов из Subversion, Mercurial, системы управления версиями Team Foundation (TFVC) или другого репозитория Git. Вы также можете использовать эти внешние средства для преобразования вашего проекта в Git.

Импорт из Subversion

В типичной среде Subversion несколько проектов хранятся в одном корневом репозитории. На сайте GitHub каждый из этих проектов обычно сопоставляются с отдельным репозиторием Git для учетной записи пользователя или организации. Мы рекомендуем импортировать каждую часть репозитория Subversion в отдельный репозиторий GitHub в следующих случаях:

  • Участники совместной работы должны извлечь код из этой части проекта или зафиксировать код этой части проекта независимо от других частей.
  • Вы хотите, чтобы у разных частей проекта были собственные разрешения на доступ.

Мы рекомендуем использовать следующие средства для преобразования репозиториев Subversion в Git:

Импорт из Mercurial

Мы рекомендуем использовать hg-fast-export для преобразования репозиториев Mercurial в Git.

Импорт из TFVC

Мы рекомендуем git-tfs для перемещения изменений между TFVC и Git.

Дополнительные сведения о переходе из TFVC (централизованной системы управления версиями) в Git см. в разделе "Миграция на Git" из централизованного управления версиями.