29 KiB
Вступ до GitHub
Цей урок охоплює основи GitHub — платформи для хостингу та управління змінами у вашому коді.
Скетчнот від Tomomi Imura
Тест перед лекцією
Вступ
У цьому уроці ми розглянемо:
- відстеження роботи на вашому комп'ютері
- роботу над проектами з іншими
- як зробити внесок у програмне забезпечення з відкритим кодом
Попередні вимоги
Перед початком перевірте, чи встановлений Git. У терміналі введіть:
git --version
Якщо Git не встановлений, завантажте Git. Потім налаштуйте локальний профіль Git у терміналі:
git config --global user.name "your-name"git config --global user.email "your-email"
Щоб перевірити, чи Git вже налаштований, введіть:
git config --list
Вам також знадобиться обліковий запис GitHub, редактор коду (наприклад, Visual Studio Code), і потрібно буде відкрити термінал (або командний рядок).
Перейдіть на github.com і створіть обліковий запис, якщо у вас його ще немає, або увійдіть і заповніть свій профіль.
✅ GitHub — не єдиний репозиторій коду у світі; є й інші, але GitHub — найвідоміший.
Підготовка
Вам знадобиться папка з проектом коду на вашому локальному комп'ютері (ноутбуці або ПК) і публічний репозиторій на GitHub, який буде слугувати прикладом того, як робити внесок у проекти інших.
Управління кодом
Припустимо, у вас є локальна папка з проектом коду, і ви хочете почати відстежувати свій прогрес за допомогою git — системи контролю версій. Дехто порівнює використання git із написанням любовного листа до себе в майбутньому. Читаючи ваші повідомлення про коміти через дні, тижні чи місяці, ви зможете згадати, чому прийняли те чи інше рішення, або "відкотити" зміни — за умови, що ви пишете хороші "повідомлення про коміти".
Завдання: Створіть репозиторій і закомітьте код
Перегляньте відео
-
Створіть репозиторій на GitHub. На GitHub.com, у вкладці репозиторіїв або у верхньому правому куті навігаційної панелі, знайдіть кнопку new repo.
- Дайте вашому репозиторію (папці) назву.
- Виберіть create repository.
-
Перейдіть до вашої робочої папки. У терміналі перейдіть до папки (також відомої як каталог), яку ви хочете почати відстежувати. Введіть:
cd [name of your folder] -
Ініціалізуйте git-репозиторій. У вашому проекті введіть:
git init -
Перевірте статус. Щоб перевірити статус вашого репозиторію, введіть:
git statusВивід може виглядати приблизно так:
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: file.txt modified: file2.txtЗазвичай команда
git statusповідомляє вам, які файли готові до збереження у репозиторії або мають зміни, які ви, можливо, захочете зберегти. -
Додайте всі файли для відстеження Це також називається підготовкою файлів/додаванням файлів до області підготовки.
git add .Аргумент
git addплюс.означає, що всі ваші файли та зміни будуть відстежуватися. -
Додайте вибрані файли для відстеження
git add [file or folder name]Це дозволяє додати лише вибрані файли до області підготовки, якщо ви не хочете закомітити всі файли одразу.
-
Відмінити підготовку всіх файлів
git resetЦя команда дозволяє відмінити підготовку всіх файлів одразу.
-
Відмінити підготовку конкретного файлу
git reset [file or folder name]Ця команда дозволяє відмінити підготовку лише конкретного файлу, який ви не хочете включати до наступного коміту.
-
Збереження вашої роботи. На цьому етапі ви додали файли до так званої області підготовки. Це місце, де Git відстежує ваші файли. Щоб зробити зміни постійними, вам потрібно закомітити файли. Для цього створіть коміт за допомогою команди
git commit. Коміт представляє точку збереження в історії вашого репозиторію. Введіть наступне, щоб створити коміт:git commit -m "first commit"Це закомітить всі ваші файли, додавши повідомлення "first commit". У майбутніх повідомленнях про коміти вам слід бути більш описовими, щоб передати, який тип змін ви зробили.
-
Підключіть ваш локальний Git-репозиторій до GitHub. Git-репозиторій добре працює на вашому комп'ютері, але в якийсь момент ви захочете створити резервну копію ваших файлів десь і запросити інших людей працювати з вами над вашим репозиторієм. Одне з чудових місць для цього — GitHub. Пам'ятайте, що ми вже створили репозиторій на GitHub, тому єдине, що нам потрібно зробити, це підключити наш локальний Git-репозиторій до GitHub. Команда
git remote addзробить саме це. Введіть наступну команду:Зверніть увагу, перед введенням команди перейдіть на сторінку вашого репозиторію на GitHub, щоб знайти URL репозиторію. Ви використаєте його в команді нижче. Замініть
https://github.com/username/repository_name.gitна ваш URL GitHub.git remote add origin https://github.com/username/repository_name.gitЦе створює віддалене підключення, назване "origin", яке вказує на репозиторій GitHub, створений раніше.
-
Відправте локальні файли на GitHub. До цього моменту ви створили підключення між локальним репозиторієм і репозиторієм GitHub. Відправте ці файли на GitHub за допомогою наступної команди
git push, як показано нижче:Зверніть увагу, ваша назва гілки може відрізнятися за замовчуванням від
main.git push -u origin mainЦе відправляє ваші коміти у вашу гілку "main" на GitHub. Встановлення гілки
upstream, включаючи-uу команді, створює зв'язок між вашою локальною гілкою та віддаленою гілкою, тому ви можете просто використовувати git push або git pull без вказівки назви гілки в майбутньому. Git автоматично використовуватиме гілку upstream, і вам не потрібно буде явно вказувати назву гілки в майбутніх командах. -
Додайте більше змін. Якщо ви хочете продовжити вносити зміни та відправляти їх на GitHub, вам потрібно буде використовувати наступні три команди:
git add . git commit -m "type your commit message here" git pushПорада: Можливо, вам також захочеться використовувати файл
.gitignore, щоб запобігти появі файлів, які ви не хочете відстежувати, на GitHub — наприклад, файл нотаток, який ви зберігаєте в тій самій папці, але який не має місця в публічному репозиторії. Ви можете знайти шаблони для файлів.gitignoreна .gitignore templates.
Повідомлення про коміти
Чудовий заголовок повідомлення про коміт завершує наступне речення: Якщо застосувати, цей коміт <ваш заголовок тут>
Для заголовка використовуйте наказовий теперішній час: "змінити", а не "змінив" чи "зміни".
Як і в заголовку, у тілі (необов'язковому) також використовуйте наказовий теперішній час. Тіло має включати мотивацію для зміни та порівняти це з попередньою поведінкою. Ви пояснюєте чому, а не як.
✅ Приділіть кілька хвилин, щоб переглянути GitHub. Чи можете ви знайти дійсно чудове повідомлення про коміт? Чи можете знайти дуже мінімальне? Яка інформація, на вашу думку, є найважливішою та корисною для передачі у повідомленні про коміт?
Завдання: Співпрацюйте
Основна причина розміщення речей на GitHub — це зробити можливим співпрацю з іншими розробниками.
Робота над проектами з іншими
Перегляньте відео
У вашому репозиторії перейдіть до Insights > Community, щоб побачити, як ваш проект порівнюється з рекомендованими стандартами спільноти.
Ось деякі речі, які можуть покращити ваш репозиторій на GitHub:
- Опис. Чи додали ви опис вашого проекту?
- README. Чи додали ви README? GitHub надає рекомендації щодо написання README.
- Керівництво для внесків. Чи має ваш проект керівництво для внесків?
- Кодекс поведінки. Чи додали ви кодекс поведінки?
- Ліцензія. Можливо, найважливіше — ліцензія?
Усі ці ресурси будуть корисними для залучення нових членів команди. І саме ці речі зазвичай нові учасники переглядають перед тим, як дивитися ваш код, щоб зрозуміти, чи є ваш проект правильним місцем для їхнього часу.
✅ Файли README, хоча їх підготовка займає час, часто ігноруються зайнятими підтримувачами. Чи можете ви знайти приклад особливо описового README? Примітка: існують інструменти для створення хороших README, які вам можуть сподобатися.
Завдання: Об'єднайте код
Документація для внесків допомагає людям робити внески у проект. Вона пояснює, які типи внесків ви шукаєте і як працює процес. Учасники повинні пройти серію кроків, щоб мати змогу зробити внесок у ваш репозиторій на GitHub:
- Форк вашого репозиторію. Ви, ймовірно, захочете, щоб люди форкнули ваш проект. Форк означає створення копії вашого репозиторію у їхньому профілі GitHub.
- Клонування. Звідти вони клонують проект на свій локальний комп'ютер.
- Створення гілки. Ви захочете попросити їх створити гілку для своєї роботи.
- Зосередження змін на одній області. Попросіть учасників зосередити свої внески на одній речі за раз — таким чином шанси, що ви зможете об'єднати їхню роботу, будуть вищими. Уявіть, що вони виправляють баг, додають нову функцію і оновлюють кілька тестів — що, якщо ви хочете або можете реалізувати лише 2 з 3, або 1 з 3 змін?
✅ Уявіть ситуацію, коли гілки є особливо важливими для написання та доставки хорошого коду. Які випадки використання ви можете придумати?
Примітка: будьте зміною, яку хочете бачити у світі, і створюйте гілки для своєї власної роботи також. Усі коміти, які ви робите, будуть зроблені у гілці, до якої ви зараз "перейшли". Використовуйте
git status, щоб побачити, у якій гілці ви перебуваєте.
Давайте пройдемо робочий процес учасника. Припустимо, учасник вже форкнув і клонував репозиторій, тому у нього є готовий Git-репозиторій на локальному комп'ютері:
-
Створіть гілку. Використовуйте команду
git branch, щоб створити гілку, яка міститиме зміни, які вони мають намір внести:git branch [branch-name] -
Перейдіть до робочої гілки. Перейдіть до зазначеної гілки та оновіть робочий каталог за допомогою
git switch:git switch [branch-name] -
Виконайте роботу. На цьому етапі ви хочете додати свої зміни. Не забудьте повідомити про це Git за допомогою наступних команд:
git add . git commit -m "my changes"Переконайтеся, що ви дали своєму коміту хорошу назву, для вашого блага, а також для підтримувача репозиторію, якому ви допомагаєте.
-
Об'єднайте вашу роботу з гілкою
main. У якийсь момент ви закінчите роботу і захочете об'єднати її з гілкоюmain. Гілкаmainмогла змінитися за цей час, тому переконайтеся, що спочатку оновили її до останньої версії за допомогою наступних команд:git switch main git pullНа цьому етапі ви хочете переконатися, що будь-які конфлікти, ситуації, коли Git не може легко об'єднати зміни, виникають у вашій робочій гілці. Тому виконайте наступні команди:
git switch [branch_name] git merge mainКоманда
git merge mainпринесе всі зміни зmainу вашу гілку. Сподіваємося, ви зможете просто продовжити. Якщо ні, VS Code покаже вам, де Git заплутався, і ви просто зміните відповідні файли, щоб вказати, який контент є найбільш точним.Щоб перейти до іншої гілки, використовуйте сучасну команду
git switch:git switch [branch_name] -
Відправте вашу роботу на GitHub. Відправка вашої роботи на GitHub означає дві речі: відправка вашої гілки у ваш репозиторій і відкриття PR (Pull Request).
git push --set-upstream origin [branch-name]Наведена вище команда створює гілку у вашому форкнутому репозиторії.
-
Відкрити PR. Далі вам потрібно відкрити PR. Для цього перейдіть до форкнутого репозиторію на GitHub. Ви побачите на GitHub запит, чи хочете створити новий PR. Натисніть на нього, і вас перенаправлять на інтерфейс, де можна змінити заголовок повідомлення коміту, додати більш відповідний опис. Тепер власник репозиторію, який ви форкнули, побачить цей PR і, сподіваємося, оцінить його та зміржить. Вітаємо, тепер ви — контриб'ютор, ура! :)
-
Прибирання. Вважається гарною практикою прибирати після успішного злиття PR. Вам потрібно очистити як локальну гілку, так і гілку, яку ви запушили на GitHub. Спочатку видаліть її локально за допомогою наступної команди:
git branch -d [branch-name]Переконайтеся, що ви перейшли на сторінку GitHub форкнутого репозиторію і видалили віддалену гілку, яку щойно запушили.
Pull request може здатися дивним терміном, адже насправді ви хочете запушити свої зміни до проєкту. Але власник проєкту або основна команда повинні розглянути ваші зміни перед тим, як злиття їх із "головною" гілкою проєкту, тому ви фактично запитуєте рішення про зміну у власника.
Pull request — це місце для порівняння та обговорення змін, внесених у гілку, з рецензіями, коментарями, інтегрованими тестами тощо. Хороший pull request дотримується приблизно тих самих правил, що й повідомлення коміту. Ви можете додати посилання на проблему в трекері проблем, якщо ваша робота, наприклад, вирішує проблему. Це робиться за допомогою #, після якого йде номер вашої проблеми. Наприклад, #97.
🤞Сподіваємося, що всі перевірки пройдуть успішно, і власник(и) проєкту зіллють ваші зміни в проєкт🤞
Оновіть вашу поточну локальну робочу гілку всіма новими комітами з відповідної віддаленої гілки на GitHub:
git pull
Як зробити внесок у відкритий код
Спочатку знайдіть репозиторій (або repo) на GitHub, який вас цікавить і до якого ви хотіли б внести зміни. Вам потрібно скопіювати його вміст на свій комп'ютер.
✅ Хороший спосіб знайти репозиторії, дружні до новачків, — це шукати за тегом 'good-first-issue'.
Існує кілька способів копіювання коду. Один із них — "клонувати" вміст репозиторію, використовуючи HTTPS, SSH або GitHub CLI (інтерфейс командного рядка).
Відкрийте термінал і клонуйте репозиторій таким чином:
git clone https://github.com/ProjectURL
Щоб працювати над проєктом, перейдіть до потрібної папки:
cd ProjectURL
Ви також можете відкрити весь проєкт за допомогою Codespaces, вбудованого редактора коду / хмарного середовища розробки GitHub, або GitHub Desktop.
Нарешті, ви можете завантажити код у вигляді архівованої папки.
Кілька цікавих фактів про GitHub
Ви можете поставити зірочку, стежити або "форкнути" будь-який публічний репозиторій на GitHub. Ви знайдете свої репозиторії зі зірочками у випадаючому меню у верхньому правому куті. Це як закладки, але для коду.
У проєктах є трекер проблем, здебільшого на GitHub у вкладці "Issues", якщо не зазначено інше, де люди обговорюють проблеми, пов’язані з проєктом. А вкладка Pull Requests — це місце, де люди обговорюють і переглядають зміни, які перебувають у процесі.
У проєктах також можуть бути обговорення на форумах, у списках розсилки або чат-каналах, таких як Slack, Discord або IRC.
✅ Ознайомтеся з вашим новим репозиторієм на GitHub і спробуйте кілька речей, наприклад, змінити налаштування, додати інформацію до репозиторію та створити проєкт (наприклад, дошку Kanban). Можливостей багато!
🚀 Виклик
Попрацюйте разом із другом над кодом один одного. Створіть проєкт спільно, форкніть код, створіть гілки та злийте зміни.
Тест після лекції
Огляд і самостійне навчання
Дізнайтеся більше про внесок у відкритий код.
Практикуйтеся, практикуйтеся, практикуйтеся. GitHub пропонує чудові навчальні шляхи через skills.github.com:
Там також є більш просунуті курси.
Завдання
Пройдіть курс Перший тиждень на GitHub
Відмова від відповідальності:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу.



