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

Завершено

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

О GitHub Importer

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

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

Действие импорта 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. В правом верхнем углу любой страницы выберите +и выберите "Импортировать репозиторий".

    Screenshot of the import repository button.

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

    Screenshot of the old repository URL textbox.

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

    Screenshot of the new import repository owner name.

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

    Screenshot of the new repository public or private options.

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

    Screenshot of the begin import button for a new repository import.

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

    Screenshot of the location to input your old repository credentials importer.

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

    Screenshot of a selection of projects found at the same URL. project importer.

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

    Screenshot of files suitable for Git LFS importer.

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

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

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

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

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

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

    Screenshot of the match authors button.

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

    Screenshot of the connect commit author process.

  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.

Добавление локального репозитория в 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.

    Screenshot of new repository creation.

  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-адрес удаленный репозиторий.

    screenshot copy remote repository url quick setup

  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" из централизованного управления версиями.