---
title: "Развёртывание из GitHub: git push to deploy"
description: "Подключите репозиторий GitHub, чтобы каждый push в отслеживаемую ветку запускал сборку и переразвёртывание, включая приватные репозитории, смену веток и монорепозитории."
url: https://lizard.build/ru/docs/deploy/github/
updated: 2026-10-21
---

# Развёртывание из GitHub

Подключите репозиторий GitHub, и Lizard (lizard.build) будет собирать и переразвёртывать ваше приложение при каждом push в отслеживаемую ветку: git push to deploy. Выполните `lizard add -r owner/repo`, чтобы создать сервис; для приватного репозитория сначала подключите Lizard GitHub App командой `lizard git connect`. Это рекомендуемый способ запуска приложения, код которого хранится в GitHub. Для кода без удалённого репозитория используйте [развёртывание из локального кода](https://lizard.build/ru/docs/deploy/upload.md).

## Создание сервиса из репозитория

```bash
lizard add -r your-org/your-app
```

Команда создаёт `github`-сервис и запускает первую сборку в фоне: Lizard клонирует репозиторий и определяет стек ([lizardpack](https://lizard.build/ru/docs/concepts/build-pipeline.md)). URL команда не выводит. Следите за сборкой через `lizard logs --build --service <name>`; когда сервис заработает, `lizard ps` покажет URL. Полезные флаги:

| Флаг | Назначение |
|------|------------|
| `-r, --repo <owner/repo>` | Исходный репозиторий |
| `-n, --name <name>` | Имя сервиса (используется в ссылках `${{name.KEY}}` и на панели управления) |
| `-v, --variables <K=V>` | Задать переменную окружения; можно повторять |
| `--region <code>` | Регион для развёртывания |
| `--no-deploy` | Подключить репозиторий, но пропустить первую сборку |

## Приватные репозитории

Подключите приложение Lizard для GitHub один раз на аккаунт, чтобы получить доступ к приватным репозиториям:

```bash
lizard git connect
lizard git status        # show connection + repo status
```

Также можно подключить репозитории и управлять доступом на странице **GitHub integration** в панели управления (`lizard open`).

## Подключение существующего сервиса к репозиторию

Чтобы переключить сервис на git-источник (или сменить репозиторий/ветку):

```bash
lizard service set api \
  --set sourceType=github \
  --set repoUrl=https://github.com/your-org/your-app \
  --set branch=main
```

Изменение поля сборки запускает пересборку работающего сервиса. `redeploy` после этого [отменяет эту сборку и запускает новую](https://lizard.build/ru/docs/deploy/troubleshooting/double-build.md). Сервису, который упал или ни разу не был развёрнут, нужен `lizard redeploy`.

> **Примечание:** `lizard up` всегда принудительно включает `sourceType=upload`. Не используйте его для обновления git-сервиса — отправьте push в удалённый репозиторий или используйте `lizard redeploy`. В папке без привязанного сервиса `up` выбирает сервис с именем папки или из `package.json`, поэтому в клоне репозитория он может переключить ваш GitHub-сервис на загрузку.

## Автоматическое переразвёртывание при push

После настройки `repoUrl` пуши в соответствующую `branch` автоматически переразвёртывают сервис через вебхук GitHub. Подключите приложение Lizard для GitHub (`lizard git connect`), чтобы Lizard получал push-события репозитория. Чтобы ограничить, какие пуши запускают переразвёртывание:

- **`rootDirectory`** — собирать только подкаталог (монорепозитории).
- **`watchPatterns`** — переразвёртывать только при изменении соответствующих путей.

```bash
lizard service set api --set watchPatterns='apps/api/**,packages/**'
```

Чтобы пуши не запускали деплой, выключите **Auto-deploy** в настройках сервиса в панели управления. Сервис [на паузе](https://lizard.build/ru/docs/cli/pause.md) тоже игнорирует пуши, пока вы его не возобновите.

## Смена веток

```bash
lizard git checkout api staging      # move the `api` service to the `staging` branch and redeploy
```

## Монорепозитории

Для репозитория с несколькими приложениями создайте отдельный сервис для каждого и укажите его `rootDirectory` как подпуть:

```bash
lizard add -r your-org/monorepo -n api --no-deploy
lizard service set api --set rootDirectory=apps/api
lizard redeploy --service api
```

Если текущая директория — под-приложение внутри репозитория, чей родитель уже подключен, добавьте сервис в проект родителя и укажите `rootDirectory` как подпуть от cwd.

## См. также

- [Сборка Pipeline](https://lizard.build/ru/docs/concepts/build-pipeline.md) — как стек определяется и собирается.
- [Руководства по фреймворкам](https://lizard.build/ru/docs/framework-guides.md): команды сборки и порты для [Next.js](https://lizard.build/ru/docs/framework-guides/nextjs.md), [Nuxt](https://lizard.build/ru/docs/framework-guides/nuxt.md), [Django](https://lizard.build/ru/docs/framework-guides/django.md), [FastAPI](https://lizard.build/ru/docs/framework-guides/fastapi.md), [Rails](https://lizard.build/ru/docs/framework-guides/rails.md), [Go](https://lizard.build/ru/docs/framework-guides/go.md) и других.
- [Развёртывание с Dockerfile](https://lizard.build/ru/docs/deploy/dockerfile.md): когда в репозитории есть свой Dockerfile.
- [Развернуть из локального кода](https://lizard.build/ru/docs/deploy/upload.md) — когда нет удалённого репозитория.
- [`lizard git`](https://lizard.build/ru/docs/cli/git.md) — полная справочная информация по командам `connect`, `status` и `checkout`.
- [Выбор хоста под приложение](https://lizard.build/blog/google-antigravity-how-to-deploy-your-app-to-production#choose-the-host-by-the-application) — подключение к репозиторию, написанному агентом.
