ДеплойОжидаетОжидает запуска
ПересборкаАвтоматически после деплоя

Создать ветку

Фича-ветка автоматически попадёт в workflow frontend/backend + deploy.

Последние события

Ветки

ВеткаСтатусКоммитДивергенцияДействия

📖 Инструкция по работе с ветками

Что такое "смержена" (merged)?

Ветка считается "смерженной", если все её коммиты уже присутствуют в ветке master.

  • ✅ Ветка смержена: Все коммиты из ветки уже в master (обычно после деплоя)
  • ❌ Ветка не смержена: В ветке есть коммиты, которых нет в master

Как сделать, чтобы ветка была смержена? Задеплоить ветку в master через кнопку "Deploy".

💡 Важно: Для feature-веток (test*, feature/*, release/*, bugfix/*) используется принудительное удаление по умолчанию, поэтому они удаляются даже если не смержены. Но если изменения важны — обязательно задеплойте их в master перед удалением!

Сценарии использования кнопок

🔧 Тестирование изменений БЕЗ деплоя в master

  1. Создать ветку или переключиться на существующую
  2. Внести изменения в код
  3. Нажать "Создать коммит" → сохранить изменения в ветке
  4. Нажать "🔧 Применить" → сервер переключится на ветку и пересоберёт фронтенд
  5. Проверить изменения на сайте
  6. Если плохо → нажать "↩️ Откат+Сборка" → откатит последний коммит и пересоберёт
  7. Если хорошо → нажать "Deploy" для фиксации в master

💡 Это позволяет тестировать изменения без деплоя в master. Откат делается одной кнопкой.

1️⃣ Добавление новой функции в master (стандартный путь)

  1. Создать ветку (например, test1 или feature/new-feature)
  2. Добавить изменения в код
  3. Нажать "Создать коммит" → ввести сообщение → создать коммит
  4. Нажать "Deploy" → ветка смержится в master
  5. После деплоя изменения появятся в master и на продакшене
  6. Опционально: нажать "Удалить" для удаления ветки

2️⃣ Откат изменений в feature-ветке

  1. Найти нужную feature-ветку в таблице
  2. Нажать "Откатить" → создастся revert коммит, который отменяет последний коммит
  3. Если нужно добавить новые изменения после отката:
  4. Нажать "Создать коммит" → ввести сообщение → создать коммит
  5. Нажать "Deploy" для применения изменений в master

3️⃣ Восстановление отката

  1. После отката появится кнопка "Восстановить"
  2. Нажать "Восстановить" → откатит revert коммит, вернув изменения
  3. Нажать "Deploy" для применения восстановленных изменений в master

4️⃣ Отмена деплоя (undo deploy)

  1. Найти feature-ветку, которая была задеплоена в master
  2. Нажать "Отменить деплой" → откатит merge коммит в master
  3. Изменения из ветки исчезнут из master и с продакшена
  4. Ветка останется, можно снова задеплоить или удалить

5️⃣ Удаление ветки

  1. Найти нужную ветку в таблице
  2. Нажать "Удалить" → появится подтверждение
  3. Подтвердить удаление
  4. ⚠️ Внимание: Ветка удалится локально и в GitHub. Если изменения важны — обязательно задеплойте их в master перед удалением!
  5. Для feature-веток: Используется принудительное удаление, ветка удалится даже если не смержена

6️⃣ Откат в master

  1. Найти ветку master в таблице
  2. Нажать "Откатить" → создастся revert коммит, который отменяет последний коммит в master
  3. После отката нужно задеплоить: Нажать кнопку "Deploy" для ветки master, чтобы revert коммит отправился в GitHub и применился на продакшене через CI/CD
  4. 💡 Важно: Откат создаёт revert коммит локально. Чтобы изменения применились на продакшене, обязательно нажмите "Deploy" после отката.
  5. ⚠️ Внимание: Откат в master влияет на продакшен! Используйте осторожно. После деплоя изменения исчезнут из master и с продакшена.

Описание кнопок

Создать коммит

Создаёт коммит с изменениями в текущей ветке. Можно выбрать файлы вручную или добавить все автоматически.

🔧 Применить

Переключает сервер на эту ветку и пересобирает фронтенд. Для тестирования изменений БЕЗ деплоя в master. Изменения видны на сайте сразу.

↩️ Откат+Сборка

Откатывает последний коммит в ветке И пересобирает фронтенд. Быстрый откат изменений на сайте одной кнопкой.

Deploy

Смерживает ветку в master и отправляет изменения в GitHub. После деплоя изменения попадают на продакшен через CI/CD.

Откатить

Создаёт revert коммит, который отменяет последний коммит в ветке. После отката появляется кнопка "Восстановить".

Восстановить

Откатывает revert коммит, возвращая изменения. Доступна только после отката.

Отменить деплой

Откатывает merge коммит в master, убирая изменения из master и с продакшена. Доступна только для задеплоенных веток.

Удалить

Удаляет ветку локально и в GitHub. Для feature-веток используется принудительное удаление. ⚠️ Убедитесь, что важные изменения задеплоены!

Типы веток и их особенности

Feature-ветки

test*, feature/*, release/*, bugfix/*

  • ✅ Force delete по умолчанию
  • ✅ Удаляются даже если не смержены
  • ✅ Можно удалять без деплоя
Hotfix-ветки

hotfix/*

  • ❌ Обычное удаление
  • ⚠️ Требуют, чтобы ветка была смержена
  • 💡 Используются для критических исправлений
Master/Main

Основная ветка проекта

  • 🔒 Защищённая ветка
  • ❌ Нельзя удалить
  • ✅ Можно откатывать коммиты

💡 Полезные советы

  • Всегда работайте через feature-ветки: Не добавляйте изменения напрямую в master. Создайте ветку, добавьте изменения, создайте коммит, задеплойте.
  • Проверяйте статус деплоя: Индикатор вверху страницы показывает статус последнего деплоя.
  • Важные изменения: Обязательно задеплойте их в master перед удалением ветки, иначе они могут быть потеряны.
  • Тестовые ветки: Можно удалять без деплоя, так как для них используется force delete.
  • Дивергенция: Показывает, на сколько коммитов ветка впереди/позади master. Первое число — впереди, второе — позади.

🧪 Инструкция по тестированию workflow

Полный цикл тестирования Git workflow

Эта инструкция описывает полный цикл тестирования workflow: создание ветки, внесение изменений, коммит, деплой, проверка и откат.

Шаг 1: Создание тестовой ветки

  1. На странице /infra/github введите имя ветки (например, test-workflow)
  2. Нажмите кнопку "Создать и запустить тесты"
  3. Ветка будет создана от master и автоматически отправлена в GitHub
  4. Проверка: Ветка должна появиться в таблице веток

Шаг 2: Внесение изменений в код

  1. Внесите изменения в код (например, удалите или добавьте элемент на странице)
  2. Изменения должны быть в файлах проекта (frontend или backend)
  3. Проверка: Изменения видны в рабочей директории, но ещё не закоммичены

Шаг 3: Создание коммита

  1. Найдите вашу ветку в таблице и нажмите кнопку "Создать коммит"
  2. Введите сообщение коммита (например, test: удалить цифру 1 с фронтенда)
  3. Выберите файлы для коммита (или используйте "Добавить все файлы автоматически")
  4. Нажмите "Создать коммит"
  5. Проверка: Коммит создан, изменения зафиксированы в ветке

Шаг 4: Деплой в master

  1. Найдите вашу ветку в таблице и нажмите кнопку "Deploy"
  2. Подтвердите деплой (ветка будет смержена в master)
  3. Дождитесь завершения деплоя (статус изменится на "Успешно")
  4. Проверка: Изменения должны появиться в master и на продакшене
  5. 💡 Важно: После деплоя фронтенд пересобирается автоматически. Если нужно пересобрать вручную, используйте кнопку "🔄 Пересобрать фронтенд" в панели управления

Шаг 5: Проверка результата

  1. Проверьте что изменения применились на продакшене
  2. Обновите страницу в браузере (Ctrl+Shift+R для жёсткого обновления)
  3. Проверка: Изменения должны быть видны на сайте
  4. Проверьте логи сервиса если что-то не работает

Шаг 6: Откат деплоя (тестирование отката)

  1. Найдите вашу ветку в таблице и нажмите кнопку "Отменить деплой"
  2. Подтвердите откат (merge коммит будет откачен в master)
  3. Дождитесь завершения отката
  4. Пересоберите фронтенд и перезапустите сервис
  5. Проверка: Изменения должны исчезнуть из master и с продакшена
  6. 💡 Важно: Откат создаёт revert коммит, который отменяет merge. Ветка остаётся, можно снова задеплоить.

💡 Полезные команды для проверки

  • git log --oneline -5 — посмотреть последние 5 коммитов
  • git status — проверить текущее состояние репозитория
  • cd frontend && npm run build — пересобрать фронтенд (выполняется автоматически после деплоя)
  • sudo systemctl restart avioniq-frontend — перезапустить фронтенд сервис (выполняется автоматически после деплоя)
  • 💡 Совет: Используйте кнопку "🔄 Пересобрать фронтенд" в UI для ручной пересборки
  • grep -r "github-pill" frontend/src/ — найти где используется элемент с цифрой

⚠️ Важные замечания

  • Всегда работайте через feature-ветки: Не добавляйте изменения напрямую в master
  • Проверяйте перед деплоем: Убедитесь что изменения корректны перед деплоем в master
  • Автоматическая пересборка: Фронтенд пересобирается автоматически после деплоя. Если нужно пересобрать вручную, используйте кнопку в UI
  • Откат обратимым: После отката можно снова задеплоить ветку или использовать "Восстановить"