Що таке GitHub? Контроль версій для не-розробників
GitHub — це вебсайт, який зберігає код програмних проєктів разом із повною історією, тож ви бачите кожну зміну, можете скасувати помилки і працювати над тим самим проєктом разом з іншими людьми. Він побудований на Git — безкоштовному програмному забезпеченні, яке записує знімки файлів проєкту з часом. Git — це інструмент, що веде історію; GitHub — це онлайн-домівка, де ця історія доступна для спільного використання, резервного копіювання та обговорення.
Якщо ви створюєте застосунки за допомогою ШІ, GitHub потрібен переважно для двох речей: щоб мати власну копію коду поза інструментом, у якому ви його створили, і щоб передати його розробнику у форматі, з яким він уже працює.
Чому це важливо, коли ви працюєте з ШІ
Конструктор застосунків на ШІ дуже швидко пише й змінює багато коду, і не кожна зміна є покращенням. Контроль версій допомагає зберігати безпеку.
- Скасування без страху. Кожна збережена зміна — це знімок. Якщо ШІ щось зламав, ви повертаєтеся до останньої робочої версії.
- Володіння. Код у вашому обліковому записі GitHub залишається вашим, якщо ви змінюєте інструмент, припиняєте платити за нього або хочете другу думку.
- Робота з розробниками. Майже кожен розробник щодня користується Git. Репозиторій дає змогу переглянути код, який написав ШІ, виправити його і повернути зміни назад.
- Розгортання деінде. Багато хостинг-платформ можуть розгорнути застосунок безпосередньо з репозиторію GitHub.
Повсякденна аналогія: режим відстеження змін плюс спільний диск
Уявіть документ із увімкненим режимом відстеження змін, що зберігається на спільному диску.
- Git — це відстеження змін: кожна правка записується з тим, хто її зробив, коли і чому, і ви можете повернутися до будь-якої версії.
- GitHub — це спільний диск: документ живе онлайн, інші можуть отримати копію, і є місце для коментарів і погоджень.
- Гілка — це як збереження копії з назвою «чернетка — новий розділ про ціни», щоб експериментувати, не чіпаючи версію, на яку всі покладаються. Якщо експеримент вдався, ви зливаєте його назад.
Відмінність від документа — у масштабі. Застосунок — це сотні файлів, і Git відстежує їх усі разом, тож знімок — це стан усього проєкту одразу.
Терміни Git і GitHub, які ви зустрінете
| Термін | Простими словами |
|---|---|
| Репозиторій (repo) | Папка проєкту з повною історією |
| Коміт (commit) | Збережений знімок змін із коротким повідомленням про них |
| Гілка (branch) | Окрема лінія роботи, щоб експерименти не заважали основній версії |
| main | Типова назва основної гілки — версії, яка йде в продакшн |
| Злиття (merge) | Перенесення змін із однієї гілки в іншу |
| Конфлікт злиття | Дві зміни торкнулися тих самих рядків; треба вибрати, що залишити |
| Клон (clone) | Завантаження повної копії репозиторію разом з історією |
| Push / pull | Надіслати ваші коміти на GitHub / отримати коміти інших |
| Pull request (PR) | Сторінка GitHub із пропозицією злити гілку, де люди переглядають і обговорюють зміни |
| Fork | Ваша власна копія чужого репозиторію на GitHub |
| Issue | Завдання або звіт про помилку, прикріплений до репозиторію |
.gitignore | Список файлів, які Git ніколи не має записувати, наприклад .env із секретами та завантажені залежності |
| GitHub Actions | Автоматизація, яка працює на GitHub, наприклад тести для кожного pull request |
Два моменти варто підкреслити. По-перше, історія Git за задумом незмінна: якщо пароль був закомічений і відправлений, його видалення в наступному коміті не прибирає його з історії. По-друге, коміт корисний лише настільки, наскільки корисне його повідомлення. «Виправити подвійне зарахування бронювання, коли двоє людей бронюють одночасно» допоможе вам пізніше; «оновлення» — ні.
Робочий приклад: передача застосунку, створеного з ШІ, фрілансеру
Ви створили портал для клієнтів за допомогою конструктора застосунків на ШІ. Він працює, але ви хочете, щоб фрілансер-розробник додав складну інтеграцію з вашим бухгалтерським софтом.
- Під'єднайте проєкт до нового приватного репозиторію GitHub і виконайте push. Тепер репозиторій містить код і його історію.
- Перевірте, що в ньому є. Відкрийте репозиторій на GitHub. Там не має бути файлу
.envі API-ключів у коді. Секрети зберігаються в налаштуваннях вашої платформи і передаються фрілансеру окремо, якщо взагалі. Див. змінні середовища та секрети. - Запросіть фрілансера як співавтора лише в цей репозиторій.
- Він працює в гілці з назвою на кшталт
accounting-sync, робить коміти по ходу і відкриває pull request, коли закінчив. - Ви переглядаєте pull request. Навіть без читання коду ви можете прочитати опис, перевірити, які файли змінилися, і поставити запитання в коментарях.
- Злийте, коли вам усе подобається, а потім отримайте (pull) зміни назад у свій конструктор, щоб ви і ШІ продовжували роботу з нової версії.
По дорозі ви бачите, що саме змінилося, і можете це скасувати за потреби. Це і є вся цінність контролю версій в одному робочому процесі. Якщо ви ще думаєте, чи залучати розробника взагалі, див. найняти розробника чи створювати з ШІ.
Поширені помилки та хибні уявлення
- «GitHub і Git — одне й те саме». Git працює без GitHub; альтернативи на кшталт GitLab і Bitbucket також розміщують репозиторії Git.
- «GitHub запустить мій застосунок». GitHub зберігає код. Запуск для публіки — це вебхостинг, окрема послуга (хоча деякі хости розгортають застосунки з GitHub).
- Коміт секретів. Найшкідливіша і найпоширеніша помилка. Використовуйте
.gitignoreдля файлів.envі змініть кожен ключ, який коли-небудь потрапляв у push. - Лише одна гілка і жодних повідомлень. Нормально для соло-експериментів, але давайте комітам чіткі повідомлення і використовуйте гілки для всього ризикованого.
- Редагування в двох місцях одночасно. Якщо змінювати код і на GitHub, і в конструкторі ШІ без синхронізації, виникнуть конфлікти. Редагуйте в одному місці і синхронізуйтеся перед перемиканням.
- Думка, що приватний репозиторій — це резервна копія всього. Там код, а не вміст вашої бази даних чи завантажені файли. Їм потрібні окремі резервні копії.
Що попросити у вашого конструктора ШІ
- «Додай
.gitignore, який виключає.env, папки залежностей і результати збірки.» - «Напиши README, який пояснює, як встановити застосунок, які змінні середовища потрібні (лише імена) і як його запустити.»
- «Додай
.env.exampleз усіма іменами змінних і без справжніх значень.» - «Використовуй чіткі, описові повідомлення комітів для кожної зміни.»
Ці чотири запити створюють репозиторій, який розробник зможе підхопити за кілька хвилин. Щоб перенести застосунок на власні сервери, див. як експортувати й розмістити у себе застосунок, створений з ШІ, а щоб підготувати його до реальних користувачів, — як перевести прототип ШІ у продакшн.
GitHub і Mythex
Mythex зберігає історію за вас на кожному плані: після кожного успішного ходу агента він зберігає контрольну точку — знімок Git, до якого можна повернутися. На Pro можна під'єднати GitHub і робити push або pull проєкту з вашим репозиторієм або завантажити весь проєкт як архів; секрети та встановлені залежності виключаються з експорту. GitHub тут потрібен для синхронізації коду, а не для входу в Mythex. Див. GitHub, експорт та імпорт у документації, а також сторінку цін з описом того, що входить до кожного плану.
Запитання
У чому різниця між Git і GitHub?
Git — безкоштовне програмне забезпечення, яке записує історію файлів проєкту на будь-якому комп'ютері. GitHub — це вебсайт, яким володіє Microsoft, що розміщує репозиторії Git онлайн і додає інструменти для співпраці: pull request, issues та автоматизацію.
Чи потрібен GitHub, щоб створити застосунок за допомогою ШІ?
Ні. Багато конструкторів застосунків на ШІ зберігають історію всередині самого продукту. GitHub стає корисним, коли ви хочете мати власну копію коду, працювати з розробником або плануєте розміщувати застосунок деінде.
GitHub безкоштовний?
У GitHub є безкоштовний план, який містить публічні та приватні репозиторії. Цього достатньо для більшості людей і невеликих команд. Платні плани додають керування командою та додаткові функції; актуальні деталі дивіться на сторінці цін GitHub.
Чи є мій код публічним на GitHub?
Лише якщо ви зробили репозиторій публічним. Приватні репозиторії видно тільки вам і людям, яких ви запросили. Навіть у приватному репозиторії ніколи не коміть паролі чи API-ключі.