Вправа – передавання проекту до GitHub
Ви можете імпортувати репозиторії до GitHub за допомогою Засобу імпорту GitHub, командного рядка або зовнішніх інструментів перенесення.
Про засіб імпорту GitHub
Якщо у вас є вихідний код у Subversion, Mercurial, Team Foundation Version Control (TFVC) або іншому репозиторії Git, його можна перемістити до GitHub за допомогою засобу імпорту GitHub. GitHub Importer – це інструмент, який швидко імпортує репозиторії вихідного коду, зокрема записи та журнал редакцій, до GitHub.
Під час імпорту залежно від системи керування версіями, з яких ви імпортуєте дані, можна виконати деякі з наведених нижче завдань. Автентифікуйте дані за допомогою віддаленого сховища, оновіть авторів із зазначенням авторів, імпортуйте сховища з великими файлами або видаляйте великі файли, якщо ви не хочете використовувати сховище Git Large File Storage.
| Дія імпорту | Проміжне перетворення | Меркурій (меркурій) | TFVC | Git |
|---|---|---|---|---|
| Автентифікація за допомогою віддаленого сховища | X | X | X | X |
| Оновлення авторів із зазначенням авторів | X | X | X | |
| Переміщення великих файлів до великого файлового сховища Git | X | X | X | |
| Видалення великих файлів зі сховища | X | X | X |
Імпорт сховища за допомогою імпортера GitHub
Якщо у вас є проект, розміщений в іншій системі керування версіями, ви можете автоматично імпортувати його до GitHub за допомогою засобу імпорту GitHub. Засіб імпорту GitHub підходить не для всіх імпортів. Наприклад, якщо наявний код розміщено в приватній мережі, наш засіб не зможе отримати до нього доступ. У таких випадках ми радимо імпортувати дані за допомогою командного рядка для репозиторіїв Git або зовнішнього засобу перенесення вихідного коду для проектів, імпортованих з інших систем керування версіями.
Якщо ви хочете зіставити коміти у своєму сховищі з обліковими записами користувачів GitHub авторів під час імпорту. Спочатку переконайтеся, що кожен співавтор сховища має обліковий запис GitHub, перш ніж почати імпорт.
До репозиторіїв і окремих файлів поширюються обмеження розміру. Докладні відомості див. в статті Про великі файли на GitHub.
Щоб імпортувати сховище, виконайте такі дії:
У верхньому правому куті будь-якої сторінки виберіть +, а потім виберіть Імпортувати сховище.
У розділі "URL-адреса клона старого сховища" введіть URL-адресу проекту, який потрібно імпортувати.
Виберіть обліковий запис користувача або організацію для володіння сховищем, а потім введіть ім'я сховища на GitHub.
Укажіть, чи має нове сховище бути загальнодоступним або приватним. Докладні відомості див. в статті Налаштування видимості сховища.
Перегляньте введені відомості, а потім натисніть кнопку Почати імпорт.
Якщо старий проект захищено паролем, введіть облікові дані для цього проекту, а потім натисніть кнопку Надіслати.
Якщо за URL-адресою клона старого проекту розміщено кілька проектів, виберіть проект, який потрібно імпортувати, а потім натисніть кнопку Надіслати.
Якщо проект містить файли, розмір яких перевищує 100 МБ, укажіть, чи потрібно імпортувати великі файли за допомогою Великого сховища файлів Git, а потім натисніть кнопку Продовжити.
Коли сховище буде повністю імпортовано, ви отримаєте повідомлення електронної пошти.
Оновлення авторів коміту за допомогою Імпортера GitHub
Під час імпорту ви можете зіставити коміти у своєму сховищі з обліковим записом GitHub автора коміту. Засіб імпорту GitHub шукає користувачів GitHub, адреси електронної пошти яких відповідають авторам комітів у сховищі, яке ви імпортуєте. Потім ви можете підключити до автора коміт за допомогою адреси електронної пошти або імені користувача GitHub автора.
Оновлення авторів записів
Щоб оновити автора, зробіть ось що:
Імпортувавши сховище, на сторінці стану імпорту виберіть Зіставити авторів.
Поруч із автором, відомості про якого потрібно оновити, виберіть Підключитися.
Введіть адресу електронної пошти або ім'я користувача GitHub автора, а потім натисніть клавішу Enter.
Додавання приміток до користувача GitHub із загальнодоступною адресою електронної пошти
Якщо автор коміту в імпортованому сховищі має обліковий запис GitHub, пов'язаний з адресою електронної пошти, яку вони використовували для створення комітів, і вони не встановити свою адресу електронної пошти для надсилання як приватну. Потім Засіб імпорту GitHub відповідає адресі електронної пошти, пов'язаній із зобов'язанням, на загальнодоступну адресу електронної пошти, пов'язану з їхнім обліковим записом GitHub, і атрибути, які беруть на себе зобов'язання в обліковому записі GitHub.
Автор зобов'язань перед користувачем GitHub без загальнодоступної адреси електронної пошти
Якщо автор коміту в імпортованому сховищі не встановлює загальнодоступну адресу електронної пошти у своєму профілі GitHub, або призначити свою адресу електронної пошти як приватну. Після цього засіб імпорту GitHub може не зіставити адресу електронної пошти, пов'язану з комітом, з обліковим записом GitHub.
Автор зобов'язання може вирішити цю проблему, встановивши свою адресу електронної пошти як приватну. Їх коміти потім пов'язані з <username>@users.noreply.github.com, а імпортовані коміти пов'язані з їхнім обліковим записом GitHub.
Зазначення приміток за допомогою адреси електронної пошти
Якщо адресу електронної пошти автора не пов'язано з його обліковим записом GitHub, вони можуть додати адресу до свого облікового запису після імпорту, і до них буде віднесено правильні дані.
Якщо в автора немає облікового запису GitHub, Засіб імпорту GitHub відносить свої зобов'язання до адреси електронної пошти, пов'язаної з комітами.
Імпорт сховища GitHub за допомогою командного рядка
Якщо gitHub Importer не підходить для ваших цілей, наприклад, якщо наявний код розміщено в приватній мережі, радимо імпортувати дані за допомогою командного рядка.
Перш ніж почати, переконайтеся, що ви знаєте:
- Ім'я користувача 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 за допомогою параметра "дзеркало", який гарантує копіювання всіх посилань, наприклад гілок і тегів, до імпортованого сховища.
$ 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 CLI.
GitHub CLI – це інструмент з відкритим кодом для використання GitHub із командного рядка комп'ютера. GitHub CLI може спростити процес додавання наявного проекту до GitHub за допомогою командного рядка. Щоб дізнатися більше про GitHub CLI, перегляньте Про GitHub CLI.
Додавання локального сховища до GitHub за допомогою GitHub CLI
Щоб додати локальне сховище з GitHub CLI, виконайте такі дії:
У командному рядку перейдіть до кореневого каталогу проекту.
Ініціалізуйте локальний каталог як сховище 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 CLI.
Додавання локального сховища до 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 Version Control (TFVC) або іншого сховища Git. Крім того, за допомогою цих зовнішніх інструментів можна перетворити проект на Git.
Імпорт із subversion
У типовому середовищі subversion кілька проектів зберігаються в одному кореневому сховищі. На GitHub кожен із цих проектів зазвичай зіставлюється з окремим сховищем Git для облікового запису користувача або організації. Ми рекомендуємо імпортувати кожну частину вашого сховища Subversion до окремого сховища GitHub, якщо:
- Співавтори повинні взяти на редагування або взяти на себе зобов'язання в цій частині проекту окремо від інших частин
- Потрібно, щоб різні частини мали власні дозволи на доступ
Ми рекомендуємо ці інструменти для перетворення репозиторіїв Subversion на Git:
Імпортування з Mercurial
Радимо hg-fast-export для перетворення меркурійних репозиторій на Git.
Імпорт із TFVC
Радимо git-tfs для переміщення змін між TFVC і Git.
Докладні відомості про перехід від TFVC (централізованої системи керування версіями) до Git див. в статті Перенесення до Git з централізованого керування версіями.