Упражнение. Отправка проекта в 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.
Чтобы импортировать репозиторий, выполните указанные ниже действия.
В правом верхнем углу любой страницы выберите +и выберите "Импортировать репозиторий".
В поле "URL-адрес клонирования старого репозитория" введите URL-адрес проекта, который требуется импортировать.
Выберите учетную запись пользователя или организацию, которым принадлежит репозиторий, а затем введите имя репозитория в GitHub.
Укажите, должен ли новый репозиторий быть общедоступным или частным. Дополнительные сведения проверка о видимости репозитория.
Просмотрите введенные сведения и нажмите кнопку "Начать импорт".
Если старый проект был защищен паролем, введите сведения о входе для этого проекта, а затем нажмите кнопку "Отправить".
Если в клонируемом URL-адресе старого проекта размещено несколько проектов, выберите проект, который вы хотите импортировать, а затем нажмите кнопку "Отправить".
Если проект содержит файлы размером более 100 МБ, выберите, следует ли импортировать большие файлы с помощью Git Large File служба хранилища, а затем нажмите кнопку "Продолжить".
После полного импорта репозитория вы получите сообщение электронной почты.
Обновление атрибута автора фиксации с помощью GitHub Importer
Во время импорта можно сопоставить фиксации в репозитории с учетной записью GitHub автора фиксации. Средство GitHub Importer ищет пользователей GitHub, адреса электронной почты которых соответствуют авторам фиксаций в импортируемом репозитории. Затем вы можете связать фиксацию с автором, используя адрес электронной почты автора или его имя пользователя GitHub.
Обновление авторов фиксации
Чтобы обновить автора фиксации, выполните указанные ниже действия.
После импорта репозитория на странице состояния импорта выберите "Сопоставление авторов".
Рядом с автором, сведения о которых вы хотите обновить, выберите Подключение.
Введите адрес электронной почты автора или его имя пользователя 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
Выполните следующие действия, чтобы импортировать внешний репозиторий:
Создайте репозиторий на сайте GitHub. Вы импортируете внешний репозиторий Git в этот новый репозиторий.
В командной строке создайте "чистый" клон репозитория с помощью внешнего URL-адреса клонирования. Эта команда создает полную копию данных, но без рабочего каталога для редактирования файлов и обеспечивает чистый, свежий экспорт всех старых данных.
$ git clone --bare https://external-host.com/ext-user/repo.git #Makes a bare clone of the external repository in a local directory
Отправьте локально клонированный репозиторий в GitHub с использованием параметра mirror, который гарантирует, что все ссылки, такие как ветви и теги, будут скопированы в импортированный репозиторий.
$ cd repo.git $ git push --mirror https://github.com/ghuser/repo.git #Pushes the mirror to the new repository on GitHub.com
Удалите временный локальный репозиторий.
$ cd .. $ rm -rf repo.git
Добавление локально размещенного кода в GitHub
Если у вас есть исходный код или репозитории, хранящиеся локально на компьютере или в частной сети, их можно добавить в GitHub, введя команды в терминале. Введите команды Git напрямую или с помощью интерфейса командной строки GitHub.
GitHub CLI — это средство с открытым кодом для работы с GitHub из командной строки компьютера. GitHub CLI может упростить процесс добавления существующего проекта в GitHub с помощью командной строки. Чтобы узнать больше о интерфейсе командной строки GitHub, проверка о интерфейсе командной строки GitHub.
Добавление локального репозитория в GitHub с помощью GitHub CLI
Выполните следующие действия, чтобы добавить локальный репозиторий с помощью интерфейса командной строки GitHub:
В командной строке перейдите в корневой каталог проекта.
Инициализируйте локальный каталог как репозиторий Git.
git init -b main
Выполните подготовку и фиксацию всех файлов проекта.
git add . && git commit -m "initial commit"
Чтобы создать репозиторий для проекта на GitHub, используйте
gh repo create subcommand
. При появлении запроса выберите Отправить существующий локальный репозиторий в GitHub и введите нужное имя репозитория. Если вы хотите, чтобы проект принадлежал организации, а не вашей учетной записи пользователя, укажите имя организации и имя проекта с помощьюorganization-name/project-name
.Следуйте интерактивным инструкциям. Чтобы добавить удаленный и отправить репозиторий, подтвердите да , когда будет предложено добавить удаленный и отправить фиксации в текущую ветвь.
Кроме того, чтобы пропустить все запросы, укажите путь к репозиторию с флагом
--source
и передайте флаг видимости (--public
,--private
или--internal
). Например,gh repo create --source=. --public
. Укажите удаленный репозиторий с флагом--remote
. Чтобы отправить фиксации, передайте флаг--push
. Дополнительные сведения о возможных аргументах см. в руководстве по интерфейсу командной строки GitHub.
Добавление локального репозитория в GitHub с помощью GIT
Выполните следующие действия, чтобы добавить локальный репозиторий с помощью Git:
Создайте репозиторий на сайте GitHub.com. Чтобы избежать ошибок, не инициализировать новый репозиторий с помощью README, лицензии или
gitignore files
. Эти файлы можно добавить после отправки проекта в GitHub.Откройте Git Bash.
Измените текущий рабочий каталог на локальный проект.
Инициализируйте локальный каталог как репозиторий Git.
$ git init -b main
Добавьте файлы в новый локальный репозиторий. Эта команда также выполняет их для первой фиксации.
$ git add . # Adds the files in the local repository and stages them for commit. To unstage a file, use 'git reset HEAD YOUR-FILE'.
Зафиксируйте файлы, которые выполняются в локальном репозитории.
$ 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.
В верхней части репозитория на странице быстрого установки GitHub.com нажмите кнопку "Копировать", чтобы скопировать URL-адрес удаленный репозиторий.
В командной строке добавьте URL-адрес для удаленный репозиторий. Локальный репозиторий отправляется в это расположение.
$ git remote add origin <REMOTE_URL> # Sets the new remote $ git remote -v # Verifies the new remote URL
Отправьте изменения в локальном репозитории на 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" из централизованного управления версиями.