Как подключить GitHub к Replit и синхронизировать проект: импортировать репозиторий по ссылке replit.com/github.com/<owner>/<repo> или через replit.com/import, затем связать проект с репозиторием в Git pane (Tools → Git) и обмениваться изменениями вручную командами commit, push и pull. Автоматической фоновой синхронизации между Replit и GitHub нет: каждое действие запускает пользователь.
Подключение аккаунта GitHub: Connected Services и Git Providers
В настройках аккаунта Replit живут два независимых канала подключения GitHub, и их различие определяет, где искать причину сбоя. В документации Replit (docs.replit.com) раздел Connected Services отвечает за общий доступ аккаунта к сервисам, а Git Providers — за подключение, которое использует именно поток импорта репозиториев. Официальная страница Import from a provider прямо описывает ситуацию: если вы видите сообщение Failed to get repository, please re-authenticate with GitHub или выпадающий список репозиториев показывает No repositories found, значит поток импорта GitHub использует отдельное подключение, отличное от страницы Account → Connected Services. Повторное подключение только в Connected Services такую ошибку не устраняет.
Порядок действий для импорта:
- Откройте настройки аккаунта Replit и найдите раздел Git Providers.
- Отключите GitHub в этом разделе.
- Подключите GitHub заново с того же экрана.
- Вернитесь к импорту — личные репозитории появятся в выпадающем списке.
Для репозитория, принадлежащего организации GitHub, добавьте отдельный шаг: откройте https://github.com/settings/applications, найдите OAuth-приложение Replit и выдайте ему доступ к организации в настройках доступа сторонних приложений. Если вы не владелец организации, этот шаг выполняет администратор.
Таблица ниже разводит два канала по назначению и типовому симптому.
| Канал | За что отвечает | Симптом при проблеме |
|---|---|---|
| Connected Services | Общий доступ аккаунта к сервисам | Ошибки в других интеграциях аккаунта |
| Git Providers | Подключение для потока импорта GitHub | No repositories found, Failed to get repository |
| Доступ организации | Видимость репозиториев организации | Репозиторий не появляется в списке импорта |
Проверка результата: после переподключения в Git Providers личные репозитории видны в списке импорта. Если репозиторий принадлежит организации и не отображается, проверьте доступ OAuth-приложения к организации на стороне GitHub.
Два способа импорта: rapid URL и guided import
Официальная документация Replit описывает два маршрута импорта, и выбор зависит от видимости репозитория. Rapid import работает для публичных репозиториев: скопируйте путь после github.com/ и откройте адрес вида https://replit.com/github.com/<owner>/<repo>, затем нажмите Enter, чтобы запустить импорт. Пример из документации: GitHub URL https://github.com/exampleUser/my-app превращается в https://replit.com/github.com/exampleUser/my-app.
Guided import поддерживает публичные и приватные репозитории:
- Откройте
replit.com/import. - Выберите GitHub.
- Подключите аккаунт GitHub.
- Выберите репозиторий.
- Нажмите Import.
Что попадает в проект при импорте GitHub-репозитория: файлы и папки репозитория, файлы зависимостей, общая конфигурация запуска и сборки. Что не переносится: значения секретов и переменных окружения, а также платформенные сервисы, которые по умолчанию не работают в Replit. Во время импорта Replit определяет стек приложения, устанавливает зависимости и настраивает команды запуска.
Таблица сравнения маршрутов:
| Критерий | Rapid import | Guided import |
|---|---|---|
| Видимость репозитория | Публичные | Публичные и приватные |
| Адрес входа | replit.com/github.com/<owner>/<repo> |
replit.com/import |
| Выбор репозитория | По прямой ссылке | Из выпадающего списка |
| Подключение аккаунта | Не требуется отдельным шагом | Требуется |
Если приложение требует доработок после импорта, в Project Editor доступны Agent (правки кода и отладка), Secrets (ключи и переменные окружения) и Workflows (команда запуска).
Связывание и инициализация репозитория в Git pane
Git pane — визуальный интерфейс Git внутри Project Editor. Открывается он так: в Project Editor выберите Tools, затем Git в разделе Setup. Если у проекта ещё нет Git-репозитория, выберите Initialize Git Repository — Replit создаст его.
Git pane решает три задачи настройки:
- Initialize repository — создать новый Git-репозиторий для приложения Replit.
- Connect to a Git provider — связать репозиторий с поддерживаемым хостингом для резервного копирования и совместной работы.
- Configure remote — настроить и поддерживать соединение с удалённым репозиторием.
Версия контроля в Replit построена на Git, и все интерфейсы работают с одним и тем же репозиторием. Agent Checkpoints создаёт коммиты автоматически на важных этапах при работе с Replit Agent, Git Pane даёт визуальный доступ к полному репозиторию, Git CLI открывает командную строку, File History отслеживает изменения внутри отдельных файлов. Для долгосрочного отслеживания версий и совместной работы с внешними репозиториями документация рекомендует использовать Git-коммиты.
Self-hosted Git поддержан на тарифе Enterprise: GitHub Enterprise Server, GitLab Self-Managed и Bitbucket Data Center. Для подключения Replit предлагает обратиться в отдел продаж за настройкой провайдера и отладкой соединения. Удалённый репозиторий можно также настроить командами Git в Shell.
Проверка результата: после инициализации Git pane показывает репозиторий проекта, а после связывания с провайдером — удалённую ветку. Если проект импортирован из GitHub, репозиторий уже существует, и шаг инициализации пропускается.
Ручные commit, push и pull в Git pane
Git pane даёт полный набор операций без командной строки. Порядок работы с изменениями:
- Внесите правки в файлы приложения.
- Откройте Git pane из раздела Tools.
- Просмотрите изменения в разделе Review Changes — модифицированные файлы показаны с подсветкой добавлений и удалений.
- Отметьте файлы для следующего коммита (Stage files).
- Сделайте коммит с описательным сообщением (Commit changes).
- Отправьте коммиты в удалённый репозиторий (Push updates) — одним нажатием.
Replit AI помогает сгенерировать сообщение коммита, описывающее изменения.
Управление ветками: откройте Git pane, выберите выпадающий список рядом с именем ветки, создайте новую или выберите существующую. Доступны создание веток для отдельной разработки функций, переключение между версиями кода, публикация веток в провайдере и получение изменений от коллег (Pull changes).
Разрешение конфликтов слияния:
- Попробуйте выполнить pull при наличии конфликтов.
- Git pane подсветит конфликтующие файлы.
- Откройте каждый файл и разрешите конфликты.
- Сохраните файлы.
- Завершите слияние, выбрав Pull.
После разрешения конфликтного файла уберите маркеры конфликта — строки, начинающиеся с символов конфликта, — и сохраните файл.
Проверка результата: после push обновите страницу репозитория на GitHub и убедитесь, что коммит появился в нужной ветке. После pull из GitHub проверьте, что изменения видны в файлах проекта Replit.
Shell и Git pane: что синхронизируется
Shell открывается так: выберите + в панели вкладок Project Editor, чтобы открыть Tools & files, введите Shell в поле Search tools и выберите Shell. Для сложных операций доступны стандартные команды Git.
Ключевой момент: изменения, сделанные любым из двух способов, отражаются в обоих местах. Любые Git-команды, выполненные в Shell, синхронизируются с Git pane. Так обновляются интерфейсы внутри одного проекта. Обмен данными с GitHub требует отдельного push или pull.
Базовые команды:
- Клонирование:
git clone <url-to-repository> - Инициализация:
git init - Добавление remote:
git remote add origin <url-to-repository> - Статус:
git status - Индексация:
git add <filename>илиgit add . - Коммит:
git commit -m "your commit message" - Отправка:
git push origin <branch-name> - Получение:
git pull origin <branch-name>
В Shell также доступны GitHub CLI (gh) и GitLab CLI (glab) для работы с внешними репозиториями, включая pull requests и issues.
Разделение простое: push и pull — это сетевые операции с удалённым репозиторием, которые вы запускаете сами. Синхронизация Shell↔Git pane — это отражение состояния одного локального репозитория в двух интерфейсах. Фонового процесса, который сам отправлял бы коммиты в GitHub, здесь нет.
Проверка результата: выполните git status в Shell и откройте Git pane — список изменённых файлов совпадёт в обоих местах.
Аутентификация приватных репозиториев: PAT в Secrets
Для приватных репозиториев GitHub нужна аутентификация. Вместо пароля используется personal access token (PAT). Чтобы не вводить учётные данные каждый раз, их сохраняют в Replit Secrets:
- Создайте новый секрет с ключом
GIT_URL. - Установите значение вида
https://<username>:<token>@<git-host>/<owner>/<repository>. - Отправляйте изменения командой
git push $GIT_URLбез ввода учётных данных.
Этот способ работает для операций в Shell. Предупреждение из документации: при использовании секрета с учётными данными любой, у кого есть доступ к приложению Replit, потенциально может получить доступ к вашим Git-учётным данным. Для чувствительных репозиториев документация предлагает вводить учётные данные вручную каждый раз.
Таблица: где какой способ аутентификации применим.
| Операция | Способ аутентификации |
|---|---|
| Push/pull в Git pane | Подключение Git-провайдера и настройка remote в Git pane. |
| Push/pull в Shell с приватным репо | PAT, при необходимости через секрет GIT_URL |
| Чувствительный репозиторий | Ручной ввод учётных данных |
Проверка результата: выполните git push $GIT_URL в Shell — команда завершается без запроса пароля, а коммит появляется в приватном репозитории на GitHub.
Проверочный сценарий двустороннего обмена
Чтобы убедиться, что обмен работает в обе стороны, пройдите два коротких цикла.
Цикл 1: Replit → GitHub.
- Измените любой файл в проекте Replit.
- Откройте Git pane, просмотрите изменение, сделайте коммит.
- Нажмите Push updates.
- Откройте репозиторий на GitHub и проверьте, что коммит и изменение файла на месте.
Цикл 2: GitHub → Replit.
- Измените файл прямо в веб-интерфейсе GitHub и закоммитьте.
- Вернитесь в Replit и выполните Pull changes в Git pane (или
git pull origin <branch-name>в Shell). - Проверьте, что изменение появилось в файле проекта Replit.
Чек-лист проверки:
- Коммит из Replit виден в ветке на GitHub.
- Изменение из GitHub видно в файлах Replit после pull.
- Ветка в Git pane совпадает с веткой на GitHub.
git statusв Shell не показывает расхождений после обмена.
Если один из циклов не проходит, вернитесь к разделу о подключении: причина чаще всего в канале Git Providers или в доступе организации.
Типовые ошибки и их устранение
No repositories found в списке импорта. Поток импорта GitHub использует отдельное подключение от страницы Account → Connected Services. Переподключение только в Connected Services эту ошибку не устраняет. Решение: откройте раздел Git Providers в настройках аккаунта, отключите GitHub и подключите заново с того же экрана.
Failed to get repository, please re-authenticate with GitHub. Та же причина — расхождение каналов подключения. Действия те же: переподключение через Git Providers.
Репозиторий организации не появляется в списке. Откройте https://github.com/settings/applications, найдите OAuth-приложение Replit и выдайте ему доступ к организации в настройках доступа сторонних приложений. Если вы не владелец организации, шаг выполняет администратор.
Ошибка аутентификации при push в Shell. Для приватных репозиториев GitHub нужен PAT вместо пароля. Проверьте, что секрет GIT_URL содержит корректный формат https://<username>:<token>@<git-host>/<owner>/<repository>, и отправляйте изменения командой git push $GIT_URL.
Импорт падает на совместимости или доступе. Документация предлагает проверить три области: ошибки совместимости — наличие нужных файлов проекта и поддерживаемых фреймворков; ошибки доступа — права на репозиторий или источник; ошибки обработки — упростить структуру проекта или уменьшить размер и повторить. Если проблемы сохраняются, документация направляет в Replit Community Hub или в поддержку.
Таблица диагностики:
| Симптом | Канал | Действие |
|---|---|---|
No repositories found |
Git Providers | Переподключить GitHub в Git Providers |
Failed to get repository |
Git Providers | Переподключить GitHub в Git Providers |
| Репозиторий организации не виден | Доступ организации | Выдать OAuth-приложению Replit доступ к организации |
| Ошибка аутентификации в Shell | PAT | Проверить секрет GIT_URL |
| Импорт отклонён по размеру | ZIP | Убрать node_modules, .venv, build |
Что не переносится при импорте
Импорт переносит код, но не данные и не секреты. Официальная документация перечисляет, что остаётся за пределами проекта:
- Секреты и значения переменных окружения — их нужно добавить отдельно через Secrets.
- Данные базы данных — существующие записи не мигрируют.
- Платформенные сервисы, которые по умолчанию не работают в Replit.
- Пользовательские домены и конфигурация сторонних коннекторов.
Для восстановления недостающего документация предлагает использовать Agent: доработать функциональность, добавить секреты и воссоздать данные базы. Перед импортом рекомендуется убрать чувствительные учётные данные из исходного проекта, поддерживать чистую структуру, а после импорта проверить зависимости, команды запуска и протестировать основные сценарии до публикации.
Импорты, требующие миграционной работы Agent, могут расходовать кредиты; расход зависит от сложности проекта.
Частые вопросы
Как подключить GitHub к Replit, если список репозиториев пуст?
Откройте настройки аккаунта Replit, раздел Git Providers, отключите GitHub и подключите заново с того же экрана. Поток импорта использует отдельное подключение от страницы Connected Services, поэтому переподключение только там ошибку не устраняет. После этого личные репозитории появятся в выпадающем списке импорта.
Replit синхронизирует проект с GitHub автоматически?
Фоновой автоматической синхронизации нет. Коммиты и отправка изменений запускаются вручную — через Git pane или командами в Shell. Синхронизация между Shell и Git pane отражает состояние одного локального репозитория в двух интерфейсах и не отправляет данные в GitHub сама по себе.
Как импортировать приватный репозиторий GitHub в Replit?
Используйте guided import: откройте replit.com/import, выберите GitHub, подключите аккаунт, выберите репозиторий и нажмите Import. Rapid import по прямой ссылке replit.com/github.com/<owner>/<repo> работает для публичных репозиториев. Для операций push и pull в Shell с приватным репозиторием понадобится PAT.
Что делать с ошибкой UNAUTHENTICATED при push?
Для приватных репозиториев GitHub вместо пароля используется personal access token. Создайте секрет с ключом GIT_URL и значением вида https://<username>:<token>@<git-host>/<owner>/<repository>, затем отправляйте изменения командой git push $GIT_URL. Учтите: любой с доступом к приложению Replit потенциально может получить доступ к этому секрету.
Переносятся ли секреты и данные базы при импорте?
Нет. При импорте GitHub-репозитория переносятся файлы, зависимости и конфигурация запуска. Значения секретов и переменных окружения нужно добавлять отдельно через Secrets, а данные базы не мигрируют — их воссоздают с помощью Agent.
