Вправа – передавання проекту до 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.

Щоб імпортувати сховище, виконайте такі дії:

  1. У верхньому правому куті будь-якої сторінки виберіть +, а потім виберіть Імпортувати сховище.

    Знімок екрана: кнопка сховища імпорту.

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

    знімок екрана: текстове поле URL-адреси старого сховища.

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

    Знімок екрана: нове ім'я власника сховища імпорту.

  4. Укажіть, чи має нове сховище бути загальнодоступним або приватним. Докладні відомості див. в статті Налаштування видимості сховища.

    Знімок екрана: нові варіанти загальнодоступного або приватного сховища.

  5. Перегляньте введені відомості, а потім натисніть кнопку Почати імпорт.

    Знімок екрана: кнопка

  6. Якщо старий проект захищено паролем, введіть облікові дані для цього проекту, а потім натисніть кнопку Надіслати.

    знімок екрана розташування для введення старих облікових даних сховища.

  7. Якщо за URL-адресою клона старого проекту розміщено кілька проектів, виберіть проект, який потрібно імпортувати, а потім натисніть кнопку Надіслати.

    Знімок екрана: вибір проектів, знайдених за тією самою URL-адресою. імпортер проекту.

  8. Якщо проект містить файли, розмір яких перевищує 100 МБ, укажіть, чи потрібно імпортувати великі файли за допомогою Великого сховища файлів Git, а потім натисніть кнопку Продовжити.

    Знімок екрана: файли, які підходять для імпортера великого сховища Git.

Коли сховище буде повністю імпортовано, ви отримаєте повідомлення електронної пошти.

Оновлення авторів коміту за допомогою Імпортера GitHub

Під час імпорту ви можете зіставити коміти у своєму сховищі з обліковим записом GitHub автора коміту. Засіб імпорту GitHub шукає користувачів GitHub, адреси електронної пошти яких відповідають авторам комітів у сховищі, яке ви імпортуєте. Потім ви можете підключити до автора коміт за допомогою адреси електронної пошти або імені користувача GitHub автора.

Оновлення авторів записів

Щоб оновити автора, зробіть ось що:

  1. Імпортувавши сховище, на сторінці стану імпорту виберіть Зіставити авторів.

    Знімок екрана: кнопка авторів збігів.

  2. Поруч із автором, відомості про якого потрібно оновити, виберіть Підключитися.

    Знімок екрана: процес створення підключення.

  3. Введіть адресу електронної пошти або ім'я користувача 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

Щоб імпортувати зовнішнє сховище, виконайте такі дії:

  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 за допомогою параметра "дзеркало", який гарантує копіювання всіх посилань, наприклад гілок і тегів, до імпортованого сховища.

    $ 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 CLI.

GitHub CLI – це інструмент з відкритим кодом для використання GitHub із командного рядка комп'ютера. GitHub CLI може спростити процес додавання наявного проекту до GitHub за допомогою командного рядка. Щоб дізнатися більше про GitHub CLI, перегляньте Про GitHub CLI.

Додавання локального сховища до GitHub за допомогою GitHub CLI

Щоб додати локальне сховище з GitHub CLI, виконайте такі дії:

  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 CLI.

Додавання локального сховища до 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-адресу віддаленого сховища.

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