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

Завершено

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

О GitHub Importer

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

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

Действие импорта Подрыв Ртутный 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 Large File Storage.

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

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

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

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

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

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

    Скриншот кнопки «Авторы совпадений».

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

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

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

Связывание фиксаций с пользователем 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. Создайте "bare" клон репозитория, используя внешний 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 Import для импорта проектов из Subversion, Mercurial, Team Foundation Version Control (TFVC) или другого репозитория Git. Вы также можете использовать эти внешние средства для преобразования вашего проекта в Git.

Импорт из Subversion

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

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

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

Импорт из Mercurial

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

Импорт из TFVC

Для перемещения изменений между TFVC и Git рекомендуется использовать git-tfs .

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