Что такое 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 и отправьте его. Теперь в репозитории лежат код и его история.
- Проверьте, что там лежит. Откройте репозиторий на GitHub. Там не должно быть файла
.envи API-ключей в коде. Секреты хранятся в настройках платформы и при необходимости передаются фрилансеру отдельно — см. переменные окружения и секреты. - Пригласите фрилансера как соавтора только в этот репозиторий.
- Он работает в ветке с названием вроде
accounting-sync, делает коммиты по ходу дела и открывает pull request, когда закончит. - Вы проверяете pull request. Даже без чтения кода вы можете прочитать описание, посмотреть, какие файлы изменились, и задать вопросы в комментариях.
- Сливаете изменения, когда всё устраивает, а затем подтягиваете (pull) их обратно в конструктор, чтобы вы и ИИ продолжали работу уже с новой версией.
На каждом шаге вы видите, что именно изменилось, и можете это отменить. В этом и вся ценность контроля версий в одном рабочем процессе. Если вы думаете, нужен ли вам разработчик вообще, см. нанять разработчика или создать приложение с ИИ.
Частые ошибки и заблуждения
- «GitHub и Git — одно и то же». Git работает и без GitHub; есть и другие сервисы, например GitLab и Bitbucket, которые тоже хранят Git-репозитории.
- «GitHub запустит моё приложение». GitHub хранит код. Запуск для публики — это веб-хостинг, отдельная услуга (хотя некоторые хостинги умеют разворачивать код из GitHub).
- Коммит секретов. Самая разрушительная и самая частая ошибка. Используйте
.gitignoreдля файлов.envи меняйте любой ключ, который когда-либо был отправлен в репозиторий. - Только одна ветка и никаких сообщений. Для одиночных экспериментов это сойдёт, но давайте коммитам понятные сообщения и используйте ветки для всего рискованного.
- Правки в двух местах сразу. Если менять код и на GitHub, и в конструкторе ИИ без синхронизации между ними, возникнут конфликты. Выберите одно место для правок и синхронизируйтесь перед переключением.
- Считать приватный репозиторий резервной копией всего. Там хранится код, а не содержимое базы данных или загруженные файлы. Им нужны собственные резервные копии.
Что попросить у конструктора ИИ
- «Добавь
.gitignore, который исключает.env, папки зависимостей и результаты сборки.» - «Напиши README: как установить приложение, какие переменные окружения нужны (только названия) и как его запустить.»
- «Добавь
.env.exampleсо всеми названиями переменных и без настоящих значений.» - «Используй понятные описательные сообщения коммитов для каждого изменения.»
Эти четыре запроса дают репозиторий, который разработчик поймёт за несколько минут. Чтобы перенести приложение на свои серверы, см. как экспортировать приложение, созданное с ИИ, и развернуть его самостоятельно, а чтобы подготовить его к реальным пользователям, — как довести прототип с ИИ до продакшена.
GitHub и Mythex
Mythex сохраняет историю за вас на каждом тарифе: после каждого успешного хода агента создаётся контрольная точка — снимок Git, к которому можно вернуться. На тарифе Pro можно подключить GitHub и отправлять или загружать проект в свой репозиторий либо скачать весь проект архивом; секреты и установленные зависимости из экспорта исключаются. GitHub здесь нужен для синхронизации кода, а не для входа в Mythex. См. GitHub, экспорт и импорт в документации и страницу тарифов, где указано, что входит в каждый план.
Вопросы
В чём разница между Git и GitHub?
Git — бесплатная программа, которая записывает историю файлов проекта на любом компьютере. GitHub — сайт, принадлежащий Microsoft, который хранит Git-репозитории онлайн и добавляет инструменты для совместной работы: pull request, задачи (issues) и автоматизацию.
Нужен ли GitHub, чтобы создать приложение с помощью ИИ?
Нет. Многие конструкторы приложений с ИИ сохраняют историю внутри своего продукта. GitHub становится полезным, когда вы хотите иметь собственную копию кода, работать с разработчиком или разместить приложение в другом месте.
GitHub бесплатный?
У GitHub есть бесплатный тариф, который включает публичные и приватные репозитории; этого хватает большинству частных пользователей и небольших команд. Платные тарифы добавляют управление командой и дополнительные функции. Актуальные данные смотрите на странице цен GitHub.
Мой код виден всем на GitHub?
Только если вы сделали репозиторий публичным. Приватные репозитории видны только вам и людям, которых вы пригласили. Даже в приватном репозитории никогда не коммитьте пароли и API-ключи.